Repository navigation
Release guidance defines durable lifecycle and complete consumer records - #208
Marius Storhaug (MariusStorhaug) wants to merge 12 commits into
Conversation
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>
There was a problem hiding this comment.
🟡 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
Require tag backups outside the pruned namespace · New Specify origin explicitly for fetch and verification · New Limit tag pruning to origin · New Document prerelease mapping across manifest fields · New Define collision-free stable and prerelease version mapping · New Align PR Format with FR10’s result-scoped evidence · New Allow native bounded ranges without requiring aliases · New
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
There was a problem hiding this comment.
🟡 Changes recommended
The design still lacks a retirement path for exposed resolved intents and an explicit version-calculation baseline, while incorrectly freezing reservation state after Resolve.
3 open issues
7 resolved since last review
Allow native bounded ranges without requiring aliases Align PR Format with FR10’s result-scoped evidence Define collision-free stable and prerelease version mapping Document prerelease mapping across manifest fields Limit tag pruning to origin Specify origin explicitly for fetch and verification Require tag backups outside the pruned namespace
Review effort: Balanced
There was a problem hiding this comment.
🟡 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
There was a problem hiding this comment.
🟡 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
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>
995dbab


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 verifiedgit bundle create owned-tags-backup.bundle --tagsfollowed bygit bundle verify owned-tags-backup.bundlecan 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. Namingoriginprevents another upstream from choosing the source of this operation.For ongoing controlled movement, inspect
remote.origin.fetchand add+refs/tags/*:refs/tags/*once only when absent. Set clone-localremote.origin.pruneandremote.origin.pruneTagsto true, not clone-wide pruning defaults that can affect other remotes. Fetch explicitly from origin. Compare the local alias's tag-object hash withgit 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
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
ModuleVersionplusPrivateData.PSData.Prerelease: canonical2.5.0-alphais core2.5.0and labelalpha, not prerelease text inModuleVersion. 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
The earlier native PowerShell manifest verification established numeric
ModuleVersionand separate prerelease data; prerelease text does not parse asSystem.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 mainaa9b5cecc69f4cbe6aa04a5dd70ff9cdadeeac3d, 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 orRelease decisionsblock 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_requestruns 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.ymlin 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.ymlsurface,SettingsPath/PSModule.ymlsurface, or legacy filename fallback was added or renamed.DefaultBumpstill acceptspatch,minor, ormajor, with sharedpatchas 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, andrelease:skip. Prerelease uses the resolved bump; skip combines with no other signal.ReleaseTyperetains 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
The test-first filename-only revision failed on the old references, then passed all 12 focused checks. Its commit
995dbab9a1115c768249f467e37ebd6b8686d7accontains exactly eight filename substitutions across five pages; normalized comparison proves every other character was unchanged at that boundary. The separate reconciliation commitf68927e94a31520c4db482aa8f2359cc999b80aaintegrates 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-branchesand minor-default examples, while this proposal retains its authored keyedReleaseTypeand 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