Skip to content

Define the evergreen consumer upgrade procedure and completion gates #203

Description

Context and request

Give humans and agents one version-independent procedure for upgrading a consumer from its actual upstream baseline through a resolved target, using the complete crossed release history and an applicable immutable template baseline. Producer-owned guides supply source/version/template discovery; installing a skill is not a prerequisite.

The procedure consumes the incremental release evidence established by MSXOrg/docs#202. Its native dependency records that prerequisite. This Task delivers the common procedure and its connected gates in one MSXOrg/docs PR; it does not execute the PSModule pilot or edit release history.

Acceptance criteria

  • A reader can discover the common procedure through the Ways of Working index, fleet guidance, dependency updates, downstream propagation, and the shared agent plugin.
  • The procedure identifies each consumed upstream reference, distinguishes it from the consumer's own package version, and resolves an exact version and immutable source identity. A floating alias's present destination is not evidence of what previously ran.
  • The target is resolved and recorded once: latest stable by default, or an explicit stable/prerelease target. An older-than-latest target remains an upgrade from the baseline; downgrades are a separate operation.
  • Traversal reads every applicable release after the baseline through the target, baseline-exclusive and target-inclusive, with full pagination and semantic/lineage ordering rather than API order or timestamps. It excludes unrelated backports and prerelease streams; no-action releases are still inspected.
  • An applicability-aware action ledger composes renamed, superseded, and reversed changes and retains genuinely required intermediate steps. Missing baseline provenance, release evidence, required actions, or applicable template compatibility blocks affected work and registers an upstream gap. Equivalent authoritative evidence from an external producer is accepted without requiring MSX formatting.
  • Upgrades preserve consumer-owned code, tests, configuration intent, secrets, documentation, and assets. The target template comparison distinguishes required integration surfaces from optional scaffolding and intentional local differences; it never copies a template wholesale. Products without a template explicitly record that fact.
  • Existing relevant consumer validation and ledger reconciliation establish the result, including no-op ranges. The upgrade PR records exact range/source identities, release links, completed and not-applicable actions, target-template evidence and differences, outcomes, and unresolved blockers. Older targets use immutable historical source/docs and release records, not today's docs or template.
  • Review readiness requires complete consumer release evidence. Applicable producer work is not done until compatible immutable template evidence exists and necessary linked template changes are delivered. Review, merge, publication, and template completion remain distinct; immutable candidate/prerelease evidence avoids circular pre-merge requirements when final template wiring needs the released producer version.
  • Product documentation describes the current contract, while per-release changes and delivery plans live in issues, PRs, and releases. Decision records and research artifacts remain supported exceptions.
  • The shared skill is a thin pointer. Initiative-specific source/version/template discovery stays in initiative documentation and plugins. Plugin and marketplace-entry versions move together, and navigation, generated indexes, and discovery docs agree.

Merged contract and kickoff

Use a fresh session/worktree from main containing MSXOrg/docs#204, merged as 702be0fa7db80a5e24eb9ebc47badc017356257b. Read the current canonical pages rather than carrying forward the completed session's transcript or reusing its feature branch.

The merged contract already defines incremental PR/release evidence, audience-based classification, immutable template/source evidence, and opt-in DefaultBump with no implicit patch fallback. Missing decisions must fail a required pre-merge CI check. Preserve those rules; this Task adds the common consumer procedure and its consumer-evidence/producer-template completion gates rather than creating another release resolver or duplicating the existing schema.

At handoff, MSXOrg/docs#166 remains open for required CI enforcement, and MSXOrg/docs#196 remains open with an implicit-patch proposal that differs from the merged contract. Re-check both before acting; do not treat the previous merge as proof that protection is enforced, import a conflicting policy, or edit another active branch without coordinating ownership. These are separate concerns, not extra implementation scope for this Task.

Read complete review summaries, including suppressed comments: zero new inline comments alone is not evidence that a review is clean. Producer CI/ruleset implementation, the PSModule pilot, and historical backfill remain separately scoped.

Technical decisions

Surface Change
src/docs/Ways-of-Working/Consumer-Upgrades.md Add the canonical staged procedure using the orchestration-playbook template: scope, inputs, ordered stages, stop conditions, durable evidence, and completion.
src/docs/Ways-of-Working/Definition-of-Ready-and-Done.md Add consumer-evidence review readiness and producer/template completion obligations without duplicating the playbook.
src/docs/Ways-of-Working/Workflow-Stages/Implement.md Link the existing alignment pass to the gate; do not introduce a second checklist.
src/docs/Ways-of-Working/Documentation-Model.md Clarify current-product versus release/history/delivery-plan ownership while preserving decision and research tiers.
src/docs/Ways-of-Working/Fleet-Orchestration.md Route per-consumer upgrades through the common procedure.
src/docs/Capabilities/dependency-updates/{spec,design}.md and src/docs/Capabilities/downstream-release-propagation/{spec,design}.md Link full-range adoption obligations; receiving the newest note does not replace inspection of the consumer's crossed range.
src/docs/Capabilities/agentic-development/design-plugin-marketplaces.md Distinguish shared method from initiative-owned authority, discovery, and compatible template identity.
.github/plugin/msx/skills/msx-ways-of-working-consumer-upgrades/SKILL.md Add a thin pointer to the canonical procedure, not embedded migration instructions.
src/zensical.toml, generated indexes, .github/plugin/README.md, and applicable plugin discovery/manifests Wire discovery; increment the shared plugin and its marketplace-entry version together.

Use structured Markdown and existing documentation/plugin patterns. No release-history file, migration cookbook, updater, publisher implementation, automatic template synchronizer, version-specific skill, or pilot-consumer change belongs in this PR. Re-read the prerequisite's merged contract at implementation kickoff and coordinate any overlapping active PR before editing its scope.

Implementation plan

  • Read the prerequisite's completed PR and canonical orchestration-playbook, readiness, documentation, dependency-update, propagation, and plugin guidance. Define walkthrough expectations for no-action patch, breaking transition, skipped releases, prerelease target, non-latest target, ambiguous floating baseline, and missing evidence/template cases.
  • Write Consumer-Upgrades.md and connect the existing readiness, completion, alignment, documentation-model, and fleet surfaces to its single procedure.
  • Check the dependency-update and propagation flows against the walkthroughs, then update their spec/design pairs and the plugin-marketplace design without implementing their automation.
  • Inspect tests/PluginMarketplace.Tests.ps1 before adding the thin skill. Wire navigation/discovery, synchronize plugin/marketplace versions, and regenerate indexes with .github/scripts/Update-DocumentationIndex.ps1.
  • Run the existing index check, relative-link and applicable cross-repository-link checks, targeted Markdown linting, and the existing plugin test suite. Use .github/scripts/Invoke-PesterSuite.ps1 if its pinned dependency setup is needed; introduce no new validation toolchain.
  • Reconcile every walkthrough and ledger/stop condition, record standards/framework alignment and scoped issue convergence in the PR, and complete the normal review gates.

Delivery boundary

Keep one scoped Task per PR, small logical commits, push each commit, and open a draft early. The PSModule pilot is separately refined after the MSX contract: confirm the consumer's immutable baseline, reconcile existing producer/template work, repair the pilot's crossed release chain, and prove two target cases before complete historical backfill. Neither pilot execution nor bulk historical metadata writes are authorized by this Task.

Activity

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

Metadata

Metadata

Labels

No labels
No labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions