Skip to content

Release guidance defines durable lifecycle and complete consumer records - #208

Open
Marius Storhaug (MariusStorhaug) wants to merge 12 commits into
mainfrom
sync-release-lifecycle
Open

Marius Storhaug (MariusStorhaug) wants to merge 12 commits into
mainfrom
sync-release-lifecycle

Conversation

@MariusStorhaug

@MariusStorhaug Marius Storhaug (MariusStorhaug) commented Sep 13, 2026 •

Copy link
Copy Markdown
Member

Release guidance defines durable intent, phase-aware recovery, complete source-bound consumer records, and settings-driven decisions. The documented optional file is .github/release.settings.yml; its directory, keys, defaults, caller precedence, and absence behavior are unchanged. The lifecycle proposal retains the canonical PR-record and release-range-first guidance already delivered on main.

This delivery changes documentation, not a producer runtime. It creates no settings file, legacy filename fallback, versioned release, live caller change, consumer installation, or governance change. Existing immutable-version consumers need no action. Implementation owners verify the invoked producer's actual interface and conformance before adopting any documented setting or lifecycle control.

New: Owned moving-tag recovery keeps one explicit trust boundary

Use the procedure only for an intentionally moved MSX-owned major or minor alias that the consumer's artifact-specific pinning standard permits. Ownership alone does not authorize mutable references: the owned Action/reusable-workflow major-tag exception does not permit minor aliases. Exact version tags are immutable; their movement is an integrity incident, not routine recovery. SHA- or exact-version-pinned consumers require no action for this documentation delivery.

If a trusted, permitted alias is stale, verify the intended remote and back up needed local-only tags outside refs/tags/ before refreshing. Renaming a tag within that namespace does not preserve it from pruning. A verified git bundle create owned-tags-backup.bundle --tags followed by git bundle verify owned-tags-backup.bundle can retain original tag objects and reachable history; keep the backup private and outside checked-in paths.

The whole-namespace refresh is git fetch --tags --force --prune --prune-tags origin. Force replaces local tag values with that explicitly selected remote's values, and tag pruning removes local tags absent there. Accept that complete scope deliberately, review the output, and do not normalize an altered exact version tag. Naming origin prevents another upstream from choosing the source of this operation.

For ongoing controlled movement, inspect remote.origin.fetch and add +refs/tags/*:refs/tags/* once only when absent. Set clone-local remote.origin.prune and remote.origin.pruneTags to true, not clone-wide pruning defaults that can affect other remotes. Fetch explicitly from origin. Compare the local alias's tag-object hash with git ls-remote --refs origin refs/tags/<alias>, then resolve its exact release and immutable source before use. A stale or unverifiable result blocks use.

This is a general conditional operating procedure, not version-specific migration history. No actual consumer tag, configuration, or history is changed by this PR.

Technical details
Changed surface Standards checked Framework docs checked Result
Accept Moved Release Tags guide Guide structure, Natural Language, Markdown Owned-alias trust, tag pruning, immutable-source verification Aligned
GitHub Actions owned-tag link Owning coding standard, Markdown Allowed major-tag exception and consumer recovery Aligned
Capability indexes and navigation Front matter, generated indexes Documentation Model Aligned

The earlier isolated anonymous Git experiment reproduced implicit upstream selection and pruning of a renamed local-only tag. Complete 40-character identities confirmed that an independent bundle retains the pruned ref, explicit origin restores the intended alias, and origin-scoped pruning does not remove origin-owned tags when another remote is fetched. The verification repositories contained only empty commits and test tags; no repository tags or releases were changed. This filename revision leaves that operating procedure intact.

Changed: Durable lifecycle and native targets require verified conformance

The numbered specification retains fixed approved source and notes, permanent reservations after a successful build or external visibility, one retained artifact through verification and publication, destination progress, phase-aware retries, retirement and withdrawal, stable/candidate authority, current discovery, optional aliases, and independent post-completion announcements. Version computation uses permanent reservations and the reviewed aggregate minimum bump. Consumer record coverage separately starts from the actual latest successful artifact publication for each product, target, and channel.

Authors resolve publication coverage before writing a release-bound record: verify the actual artifact and publication receipt, its immutable source provenance, and the exact candidate; compare those source trees and retain the scoped PR-base comparison separately. Include earlier merged, skipped, direct, and otherwise unshipped changes in the applicable consumer range. Successful Gallery publication advances module note coverage even if later GitHub completion fails. Completing that older GitHub record preserves its original snapshot and does not make its already-published module changes new again. These authoring baselines do not change aggregate approval, version reservations, or completed-state discovery.

Consumers compose every applicable source-bound record after their actual consumed baseline through the target in release order. Notes retain prerequisites, ordering, required intermediate operations, verification, or an explicit no-action result with its compatibility basis. Reading a record does not itself require installing that version. PRs and diffs provide optional depth; resource docs describe supported target-state usage, not another migration history. Missing publication provenance or required instructions blocks the affected publication rather than becoming a no-action result.

Implementation owners verify the invoked immutable producer and actual controls before relying on them. A requirement or configuration example does not prove that an older runtime implements recovery, manual release creation, candidate routing, alias reconciliation, or announcement journaling. Exact producer adoption actions belong in its own PR/release record. Existing operators retain their released interface; an incomplete release is not repaired by rebuilding under an exposed version or re-resolving changed metadata. This documentation delivers no broad lifecycle engine, history backfill, downstream propagation, or Discord sender.

A duplicate or phase-aware retry reuses its original logical intent, approved source, frozen version, and retained artifact. A separately approved corrective release has a distinct immutable approved request identity, even when reviewed source is unchanged; it receives a new intent/version and preserves its relationship to the earlier attempt. Do not reuse a retry key to suppress that newly approved request, supersede an exposed intent, or reuse a reserved version. An affected product integration template requires its repository, compatible immutable commit, producer-source compatibility evidence, and delivered work or a justified no-change result. This docs-only delivery changes no producer or integration template, so concrete runtime/template adoption values do not apply here.

Native publishing identities remain explicit. A PowerShell prerelease uses numeric ModuleVersion plus PrivateData.PSData.Prerelease: canonical 2.5.0-alpha is core 2.5.0 and label alpha, not prerelease text in ModuleVersion. Validate the selected client's suffix syntax and reject or explicitly map unsupported forms without collisions or lost ordering.

Native bounded ranges, where supported, can express major/minor update policies without aliases. A field without a native range resolver can retain immutable patch updates when permitted bounded selection exists outside that field. A SHA-pinned Action or reusable workflow does not need or acquire permission to retain a minor alias for that policy. Git/container reference fields do not evaluate range-like strings. Require a permitted matching alias only when no other permitted resolver supplies the bound; if none can express it, fail without widening to latest or another boundary. Retain the exact version, full SHA, or digest required by the artifact's pinning standard and trust policy.

The owning VS Code framework declares stable/prerelease native mappings together before enabling Marketplace publication. Numeric versions and a native channel do not imply direct conversion from every canonical SemVer. An odd-minor convention requires reserved stable space and proven series/counter allocation. Unsupported mappings or collisions fail before publication; an enabled required destination is not silently skipped. This PR specifies the conformance boundary, not a new allocator or Marketplace publisher.

Technical details
Changed surface Standards checked Framework docs checked Result
Release Management spec/design and index Specification/design separation, Natural Language, Markdown Durable intent, aggregate minima, distinct publication/version baselines, complete records, conformance Aligned
Publishing-target contract Owning target requirements, Markdown Two-field module mapping, native coordinates, immutable bounded selection Aligned
Parent/capability indexes and navigation Generated-index conventions Documentation Model Aligned

The earlier native PowerShell manifest verification established numeric ModuleVersion and separate prerelease data; prerelease text does not parse as System.Version. Official Git, PowerShell, and Marketplace documentation grounded the mapping and trust corrections. No runtime publication or invented allocator is claimed.

Written consumer-policy cases cover omitted policy retaining the strongest immutable reference, native minor bounds without aliases, permitted SHA-pinned patch selection without changing major/minor or retaining a minor alias, the owned-major exception not authorizing minor aliases, unsupported resolution failing without widening, immutable external latest selection, opaque range strings, and patch-only pre-1.0 selection staying inside its chosen minor. These are written conformance cases, not evidence of a delivered resolver runtime.

Current immutable candidate: f68927e94a31520c4db482aa8f2359cc999b80aa. Scoped implementation base: delivered main aa9b5cecc69f4cbe6aa04a5dd70ff9cdadeeac3d, which contains merged #209. The complete actual base-to-head comparison contains 11 files and preserves the lifecycle proposal rather than reintroducing the already-delivered format/file-policy delta. This repository's Docs route is documentation validation and Pages deployment, not a versioned Release Management artifact route; no release-publication baseline or Release decisions block is fabricated for this PR.

Local validation passes all 80 repository Pester tests in seven suites, 22 focused composition/lifecycle-invariant checks, generated-index validation, relative links across 128 pages, seven cross-repository links, exact-file Markdown lint across 12 relevant pages, patch checks, and a clean build with the manifest-pinned Zensical 0.0.59. A stale global 0.0.50 executable was rejected as insufficient evidence; the required version was restored only in an isolated session environment. Dependencies and repository configuration were not changed.

All five required checks succeed on that exact head: Lint, Links, Test, Build, and Cross-repository links. Both runs are completed successful pull_request runs bound to the exact source head; the publication job is skipped.

Fresh full review: 5728246486 approves that exact head. The entire submitted summary reports no active or open concerns; the explicitly requested round added zero inline comments. All 15 existing native threads are resolved, with complete thread and comment pagination. This is the automated author-side pass, not independent human review or permission to merge.

The closing Task's inspection, contract checks, scoped reconciliation, validation/full-review, and acceptance-evidence items remain fulfilled. The filename amendment and delivered-main reconciliation are pushed separately. Producer implementation, consumer execution, date strategies, history correction, and live governance remain outside this Task. No PR merge, merge enqueue, retarget, release, or artifact promotion was performed; Agent merge's landing action and GitHub auto-merge remain off.

Related references

Changed: Optional release settings use one filename without changing behavior

The optional documented path is .github/release.settings.yml in Release Management's spec/design, the VS Code framework example, Automation Labels, and PR Format. All eight active filename references in this authored lifecycle shape use that name. No matching file exists in this repository, so no actual settings file was renamed or created. Settings keys, typed overrides, shared defaults, branch/applicability rules, and omitted-file behavior are unchanged. No runtime loader, ConfigurationFile/auto-release.yml surface, SettingsPath/PSModule.yml surface, or legacy filename fallback was added or renamed.

DefaultBump still accepts patch, minor, or major, with shared patch as the documented default. Repository settings and explicitly supplied supported caller overrides resolve before one owned bump-label override. Omitted caller inputs preserve repository policy; invalid supplied settings and conflicting signals fail even when another input supplies a valid level. A compatible effective default needs no per-PR bump label.

The owned set remains exactly release:patch, release:minor, release:major, release:prerelease, and release:skip. Prerelease uses the resolved bump; skip combines with no other signal. ReleaseType retains stable/prerelease/candidate branch keys, and candidate/announcement behavior uses supported settings rather than extra labels. Verify the actual producer or adapter interface before changing a live caller. A route without versioned release behavior carries neither release metadata nor any release label; this repository's Docs route remains unmanaged by the versioned-release contract.

Authors use the current finalized PR record: a reader-facing title, one announcement boundary after the summary, ordered non-empty classifiers, exact applicable actions or a justified no-action result, and scoped supporting evidence. Release coverage is resolved first, and the complete captured title/body remains the note. Format adherence is verified from that actual record, not an inherited scaffold or template-file copy. The current no-PR-template-file policy remains in Repository Standard and its owning governance guidance, not PR Format. Product integration template evidence and genuine repository-specific contribution instructions remain separate and intact.

This is a documentation filename revision. Existing runtime consumers do not rename live files or install software merely because the guidance changed; producer support and any required adoption actions must be verified and delivered by the relevant implementation owner.

Technical details
Changed surface Standards checked Framework docs checked Result
Release spec/design filename and VS Code examples Natural Language, Markdown Optional settings, typed schema, defaults, caller precedence, applicability Aligned
PR Format and Automation Labels filename references Canonical record procedure, namespace ownership Unmanaged-route absence behavior Aligned
Delivered canonical composition Current PR Format and Repository Standard Release-range-first records, no-template-file ownership, unchanged lifecycle contracts Aligned

The test-first filename-only revision failed on the old references, then passed all 12 focused checks. Its commit 995dbab9a1115c768249f467e37ebd6b8686d7ac contains exactly eight filename substitutions across five pages; normalized comparison proves every other character was unchanged at that boundary. The separate reconciliation commit f68927e94a31520c4db482aa8f2359cc999b80aa integrates only delivered main and preserves the lifecycle's artifact, setting, approval, recovery, discovery, and announcement contracts. Twenty-two focused checks verify that preservation and the reconciled publication-record rules.

The canonical filename-only candidate is #233 at e65b9e0125d418852a993282e2b4cd5125f16d3a, based on the same landed main. Read-only comparison confirms exact PR Format, Automation Labels, and VS Code design correspondence. Its 17 references differ from this lifecycle shape's eight because the spec/design structures are intentionally distinct; no unmerged source or tests were imported.

Remaining sequential-composition gate: read-only paired composition with #233 reports intentional conflicts in release spec/design. Its new example checks are tied to main's release-branches and minor-default examples, while this proposal retains its authored keyed ReleaseType and patch example. After whichever delivery lands first, reconcile the remaining branch against actual advanced main, preserve the applicable schema/record contract, and repeat exact-head checks and full review. Independent human review and explicit landing authorization remain separate; automatic landing is off.

Related references

Align the consolidated release capability with durable intent, reservation, recovery, withdrawal, announcement, and consumer policy requirements. Add target-specific constraints and a focused moved-tag operator guide.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@MariusStorhaug Marius Storhaug (MariusStorhaug) changed the title 📖 [Docs]: Release management defines durable lifecycle behavior Release guidance defines durable lifecycle and complete consumer records Oct 31, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Unresolved documentation issues risk unintended tag deletion or replacement and leave release-range policies, prerelease version mappings, and PR-format requirements inconsistent.

7 open issues
What changed in this PR

This documentation-only PR expands Release Management into a durable lifecycle contract and connects it to authoring standards, publishing targets, and consumer guidance. It distinguishes required controls from verified producer capabilities; no runtime, artifact, or consumer configuration changes are delivered.

Changes:

  • Defines durable release intents, build-once recovery, publication completion, withdrawal, and consumer update policies.
  • Revises settings precedence, canonical release labels, and complete source-bound release records.
  • Adds owned moving-tag recovery guidance and updates navigation and related framework documentation.
File Description
src/​zensical.toml Adds navigation for the tag-recovery guide.
src/​docs/​Ways-of-Working/​PR-Format.md Updates release applicability, defaults, and announcement boundary guidance.
src/​docs/​Ways-of-Working/​Automation-Labels.md Defines the five owned release labels and verified producer mapping.
src/​docs/​Coding-Standards/​Natural-Language.md Revises the release-decision error example.
src/​docs/​Coding-Standards/​GitHub-Actions.md Links owned-tag consumers to recovery guidance.
src/​docs/​Capabilities/​vscode-extension-framework/​spec.md Updates release defaults and canonical prerelease requirements.
src/​docs/​Capabilities/​vscode-extension-framework/​design.md Revises input precedence and decision revalidation guidance.
src/​docs/​Capabilities/​release-management/​spec.md Defines numbered lifecycle, evidence, recovery, and consumer requirements.
src/​docs/​Capabilities/​release-management/​index.md Summarizes the expanded capability and indexes its pages.
src/​docs/​Capabilities/​release-management/​design.md Describes durable state, lifecycle transitions, settings, and conformance.
src/​docs/​Capabilities/​release-management/​design-publishing-targets.md Expands destination mapping, immutability, and publication contracts.
src/​docs/​Capabilities/​release-management/​accept-moved-release-tags.md Adds conditional refresh, configuration, and verification instructions.
src/​docs/​Capabilities/​index.md Updates the Release Management capability description.

Review effort: Balanced

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The documentation conflicts with permanent version reservations and minimum-increment rules, while dashboard queries omit PR IDs required for joining and deduplicating results.

3 open issues
3 resolved since last review

Review effort: Balanced

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Human assessment is needed to weigh omitted template-evidence requirements and request-key reuse that can block a separately approved corrective release.

No open issues 🎉

3 resolved since last review

Review effort: Balanced

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Human assessment is needed because the patch-only and minor-alias guidance may conflict with the stricter version-pinning standards for owned Actions and reusable workflows.

No open issues 🎉

Review effort: Balanced

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The conformance scenario can reject SHA-pinned consumers using bounded update selection explicitly permitted by FR14, so its preconditions need narrowing.

1 open issue

Review effort: Balanced

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The publishing-target design still requires a producer alias for every Git boundary policy, conflicting with FR14’s allowance for bounded updates via immutable references and the Actions standard’s alias restrictions.

1 open issue
1 resolved since last review

Review effort: Balanced

Copilot AI previously approved these changes Oct 31, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

No active review issues are recorded for the documentation-only changes aligning release lifecycle and workflow guidance.

No open issues 🎉

1 resolved since last review

Review effort: Balanced

@MariusStorhaug
Marius Storhaug (MariusStorhaug) marked this pull request as ready for review October 31, 2026 15:25
Marius Storhaug (MariusStorhaug) added a commit that referenced this pull request Nov 1, 2026
PR Format describes the actual title and complete body: audience-first
results, release-range-first analysis, complete adoption/compatibility
evidence, one announcement boundary and conditional release decisions.
Repository file policy is owned separately by
Repository/Organization/Governance guidance, not by the PR Format page.

Authors use canonical guidance for the resulting record. Repository
standards exclude GitHub PR-template files from ordinary and
central-default sources, while retaining other community defaults,
genuine repository-specific contribution instructions and supported
product-integration contracts. This delivery changes guidance and checks
in MSXOrg/docs; separate owners remove their actual source/consumer
files. No publisher, live caller, artifact, tag, governance setting or
release history is changed here.

<!-- ANNOUNCEMENT STOP -->

## Changed: PR Format focuses on the complete authored record

Use one short reader-facing title and an audience-first summary, then
ordered non-empty Breaking, Removed, New, Changed and Fixed results.
Explain what changed, why, affected supported uses, compatibility and
complete adoption actions or a justified no-action result in each
result's prose. Keep prerequisites, ordering, verification and mandatory
intermediate operations in the record itself, with supporting evidence
and references scoped to the result they verify.

The complete in-document example is named **Complete description
example**. Its anchor is now `#complete-description-example`, replacing
`#copy-the-complete-template`. The single announcement boundary and full
body remain unchanged in purpose; announcements do not truncate the
published note. Maintained links adopt the new anchor. Existing skills
still route to the same canonical PR Format page and its
release-coverage analysis; no additional skill, file distributor or
plugin installation is required for this correction.

PR Format contains no repository PR-template-file discussion: no file
locations, copying/inheritance, local exceptions, presence/absence
policy or deletion history. Those rules belong to the repository
standards below. Product integration-template compatibility evidence
remains distinct and required where a delivered result affects a
supported integration.

<details>
<summary>Technical details</summary>

| Changed surface | Standards checked | Framework docs checked | Result
|
| --- | --- | --- | --- |
| PR Format complete example, record evidence and anchors | Natural
Language, Markdown, Documentation Model, PR Format | Complete consumer
record and source-range authoring | Aligned |
| Release Management result evidence | Specification/design separation,
Markdown | Actual title/body/source coverage, retained
product-integration compatibility | Aligned |
| Repository-specific contribution PR-format links | Markdown, canonical
ownership | Full description example; existing local build/index/link
instructions | Aligned |
| Record-format regression block | PowerShell/Pester, shared analyzer,
testing baseline | Required structure, one boundary, five
classifiers/evidence prompts and release-first order | Aligned |

The tests separate record quality from repository file policy. Record
tests verify the complete example and ordered classifiers, marker count,
publication/candidate identity fields, five scoped release-evidence
prompts, release-first analysis, and five affected-product integration
prompts. They also reject GitHub PR-template-file discussion on this
page without rejecting legitimate product integration contracts.
File-policy tests inspect the owning repository/organization/governance
pages, not PR Format. Five ownership/naming cases failed before the
refinement and pass after it.

The old example link is a documentation-anchor transition, not a runtime
migration. Required old-to-new consumer actions still belong in the
relevant release record; product docs retain supported target-state
usage rather than a migration hierarchy or changelog.

</details>

## Changed: Repository standards require canonical adherence without
PR-template files

Repository Standard owns the no-file rule for every MSX repository type
and the special `MSXOrg/.github` and `PSModule/.github` sources. GitHub
PR-template files, multiple-template directories, generated copies and
local exceptions are not part of this contract. Organization Standard
and Repository Governance reference that one owner; their former
mandatory default-file rows and local PR-template exception are removed.

Authors and validators verify the actual title, complete body, source
coverage, compatibility/adoption evidence and normal review gates. An
inherited scaffold, file-presence check or similarity to a central copy
does not prove adherence. The complete canonical record example remains
in the docs. Other
code-of-conduct/security/support/contribution/issue-intake defaults and
genuine repository-specific contribution instructions are unaffected;
this is not an organization-wide community-file cleanup.

Separate source and consumer owners remove existing PR-template files
and revise their source docs/check expectations. This PR introduces no
distributor, physically edits none of their workspaces and claims no
pending deletion is merged. A missing file never substitutes for
Markdown/source/head/containment validation or complete PR record
quality.

<details>
<summary>Technical details</summary>

| Changed surface | Standards checked | Framework docs checked | Result
|
| --- | --- | --- | --- |
| Repository Standard no-file policy and PR/contribution guidance |
Standard ownership, Markdown, Natural Language | One policy owner;
canonical actual-record verification | Aligned |
| Organization Standard community/review/default rows | Standard
ownership, Markdown | Other community defaults preserved; PR-file
requirements/exceptions removed | Aligned |
| Repository Governance defaults and reconciliation evidence | Design
ownership, Markdown | Required-source row removed without changing live
controls | Aligned |
| Markdown linter comment | YAML/Markdown standards | Only obsolete
PR-template commentary changed; parsed configuration values are
identical | Aligned |
| Repository-policy regression block | PowerShell/Pester, source
inventory | Own-policy links, no tracked PR file,
case/extension/directory detection, unaffected issue forms | Aligned |

The corrected regression checks were run against exported frozen
guidance with no commits: five actual policy cases failed while eleven
preservation/path cases passed. Current source checks recognize
uppercase/lowercase PR file names, alternate extensions and
multiple-template directories, while leaving issue forms and canonical
PR Format docs unaffected. MSXOrg/docs contains no tracked GitHub
PR-template file.

Independent full, non-truncated default-source reads confirmed these
**still-present** files at the measured immutable sources:

| Repository | Source | File |
| --- | --- | --- |
| MSXOrg/.github | `0c67251812ea306543f3a14ab473ae357cfb76ac` |
`.github/pull_request_template.md` |
| PSModule/.github | `f424237c98b5b020f80e8c9563dbc37256fc1ec0` |
`.github/pull_request_template.md` |
| PSModule/Yml | `93d2656563a719d99416b9e13a05e65f6f815498` |
`.github/pull_request_template.md` |
| PSModule/PSSemVer | `1a621b14286331569f4d1ffd4643999c2a2a6ca8` |
`.github/pull_request_template.md` |

These are measured source/consumer counterexamples with separate removal
owners, not evidence that the new no-file state has already landed. The
Project's complete 71-repository inventory additionally identified the
stale
[PSModule/Template-PSModule#42](PSModule/Template-PSModule#42)
candidate as separately owned reconciliation.
[PSModule/Process-PSModule#525](PSModule/Process-PSModule#525)
tracks the bounded producer anatomy/audit requirement reconciliation;
central/default validators have separate owners. Their
publisher/Build/runtime behavior remains outside this documentation
revision.

The [#231](#231) owner
confirmed its clean frozen branch and no pending overlapping edits. The
exact community composition boundary is the PR-template rows/paragraphs
only: preserve its conditional local-contribution rule and all other
inherited defaults while adopting the new no-file policy links. No
#196/#208/#230/#231 tracked branch was edited here.

</details>

<details>
<summary>Related references</summary>

- Resolves [#226](#226)
- References [#231](#231)
- References
[PSModule/Process-PSModule#525](PSModule/Process-PSModule#525)

</details>

## Changed: Release-bound authoring starts from actual artifact
publication

Before drafting the title, results, adoption actions or compatibility
decision, resolve the actual latest successful artifact publication for
the same product, target and channel and verify its immutable source.
Pin that artifact/source and the exact candidate PR source, verify
intended lineage and compare those source trees. The complete delivered
range includes earlier merged, skipped or unshipped changes; the
ordinary PR-base diff remains separate implementation/reviewer evidence,
not the note boundary.

A GitHub Latest hint, moving tag, assumed highest version or overall
failed run is not publication-baseline proof. Module publication to
Gallery counts even when later GitHub completion fails: the next module
record starts from its already-published source. Completing that older
GitHub record does not make module changes new again. Multiple artifact
targets/channels have independently pinned consumer baselines and
applicability.

Resolve missing/unverifiable evidence, ambiguous scope and diverged
lineage explicitly. A verified initial publication has reviewed
whole-candidate coverage and initial adoption instructions, not a
fabricated predecessor or no-action/patch assumption. Re-read
publication and candidate identities before readiness/snapshot capture
and refresh comparison, actions and compatibility when either changes.
This is the preserved authoring procedure, not a new publisher/version
resolver or Build/artifact-promotion design.

<details>
<summary>Technical details</summary>

| Changed surface | Standards checked | Framework docs checked | Result
|
| --- | --- | --- | --- |
| Publication-baseline-first procedure, five result prompts and
readiness | PR Format, Markdown | Exact publication/candidate
identities, complete range and scoped PR diff | Aligned |
| Release Management source binding and note evidence |
Specification/design ownership | Actual artifact publication versus
version/completion baselines | Aligned |
| Thin PR-format skill and paired plugin metadata | Plugin
granularity/versioning, manifest tests | Prior 0.1.1 canonical
entrypoint retained | Aligned |

The anonymous Git experiment remains exact source-tree evidence:
published A-to-candidate C includes earlier unshipped B and current C,
while scoped B-to-C includes only the current PR. Simulated
Gallery-success/GitHub-failure evidence for B keeps module coverage at
B-to-C even after older GitHub completion. Changed candidate/publication
pairs change coverage, and unrelated lineage is rejected. Receipts were
simulated inputs, not a live publish or historical repair.

**Final committed/pushed head:**
`bc03a5992615f65d1d5346dc48e7506e80b8b6ca`. This ordinary commit refines
the previous `be8c340...` authoring correspondence without amendment or
history discard. Canonical anchors are [release-first
analysis](https://github.com/MSXOrg/docs/blob/bc03a5992615f65d1d5346dc48e7506e80b8b6ca/src/docs/Ways-of-Working/PR-Format.md#resolve-release-coverage-first),
[complete description
example](https://github.com/MSXOrg/docs/blob/bc03a5992615f65d1d5346dc48e7506e80b8b6ca/src/docs/Ways-of-Working/PR-Format.md#complete-description-example),
[repository file
policy](https://github.com/MSXOrg/docs/blob/bc03a5992615f65d1d5346dc48e7506e80b8b6ca/src/docs/Ways-of-Working/Repository-Standard.md#no-pr-template-files),
and [defaults source
guidance](https://github.com/MSXOrg/docs/blob/bc03a5992615f65d1d5346dc48e7506e80b8b6ca/src/docs/Capabilities/repository-governance/design.md#organization-defaults-repository).

Local validation passes: all 80 Pester tests in seven suites, 127
documentation pages plus contribution-guide lint, indexes/relative
anchors, seven cross-repository links, actual pinned Zensical 0.0.59
build and rendered new-anchor checks, zero PowerShell analyzer
diagnostics, existing plugin-manifest validation, and patch checks. The
parsed linter configuration remains unchanged. All five required hosted
checks succeed on this exact head:
[Lint](https://github.com/MSXOrg/docs/actions/runs/41243884162/job/124663205698),
[Build](https://github.com/MSXOrg/docs/actions/runs/41243884162/job/124663205920),
[Test](https://github.com/MSXOrg/docs/actions/runs/41243884162/job/124663205851),
[Links](https://github.com/MSXOrg/docs/actions/runs/41243884162/job/124663205928),
and [Cross-repository
links](https://github.com/MSXOrg/docs/actions/runs/41243883939/job/124663204724).
Both completed `pull_request` runs identify this source head.

**Complete current-head review:**
[5725019918](#209 (review))
is APPROVED on `bc03a5992615f65d1d5346dc48e7506e80b8b6ca`. The full
summary records no active/open or suppressed concerns; all review
threads are resolved and thread pagination is complete. The prior
be8c340 approval was not used as approval of this correction. This is
the automated author-side pass, not independent human approval or
permission to merge.

All five existing Task #226 plan items are fulfilled:
verified state/cases, bounded canonical authoring, directly coupled
policy/evidence/link reconciliation, native checks/current-head full
review, and final acceptance/immutable handoff. The scoped sweep covered
PR authoring, source/default validation, release/consumer and community
guidance; only Task #226 is the closing delivery leaf. The
existing native prerequisite
[#166](#166) is
completed. Its five-context required-check rule and the existing
approval/thread constraints remain unchanged; no live merge attempt,
injected failure or bypass was used.

</details>

## Changed: Effective decisions and release-history ownership are
preserved

`DefaultBump` still accepts patch/minor/major with documented shared
patch, repository settings, explicitly supplied supported caller
overrides and one explicit owned bump override in that order. Omitted
inputs inherit valid policy; invalid supplied settings and conflicting
owned signals fail even when another source supplies a level. An
effective default removes the need for a per-PR bump label, not the need
for compatibility evidence. The exact owned set remains `release:patch`,
`release:minor`, `release:major`, `release:prerelease` and
`release:skip`.

Verify actual native/shared producer controls or a supported adapter
before using signals. Prerelease uses the resolved bump; skip combines
with no other owned signal. Unmanaged routes omit all release
metadata/labels; this repository deploys Pages without a versioned
release artifact, so this PR retains neither a Release decisions block
nor a release label. No undecided caller-override interface, allocator,
publisher or live input is approved or implemented here.

Complete PR/release records remain the sufficient version-specific
upgrade history; resource docs describe supported target-state usage.
Mandatory intermediate operations and superseded actions remain
explicit. Campaign/native associations and completion-aware issue links
retain their established ownership. No migration-guide/changelog
duplication, date strategy, native dependency mutation, publication,
historical backfill, label/permission/rules edit, merge or auto-merge is
performed.

<details>
<summary>Technical details</summary>

| Changed surface | Standards checked | Framework docs checked | Result
|
| --- | --- | --- | --- |
| Automation Labels, settings/decision rules, VS Code and
continuous-delivery guidance | Owning standards/capabilities | Accepted
default/signal, source validation and native mapping retained | Aligned
|
| Documentation Model, Fleet, workflow/readiness and Task/Bug planning |
Ways of Working, issue hierarchy, PR Format | Actual scoped
implementation evidence and sufficient consumer record preserved |
Aligned |

The existing PRs stay separate on main. Eventual landing is one at a
time with every remaining overlapping branch reconciled against advanced
main and CI/full review repeated. Other owners must consume the
refreshed immutable correspondence; their prior frozen example/file
expectations are not claimed current. This PR does not edit their
tracked candidates or waive their independent prerequisites.

</details>

<details>
<summary>Related references</summary>

- References [#196](#196)
- References [#208](#208)
- References [#230](#230)
- References [#205](#205)
- References
[#166](#166)

</details>

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

The documentation-only release-management updates have no active review issues.

No open issues 🎉

Review effort: Balanced

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Align release lifecycle guidance with the canonical communication contract

2 participants