Skip to content

program(releases): track organization-wide semantic release convention rollout #20

Description

@szmyty

September 28 current execution roadmap

Start here: egohygiene/aether#94 (REL-01). Work one checkpoint, save the result, and pause for review. This plan builds on the original program below; its current ordering supersedes the older foundation rollout order. The term “semantic release” here describes the system, not a preselected npm tool.

The roadmap issue batch changes planning only. The proposed default is reviewed preparation through release-please manifest mode, with Relay as the selected publisher, subject to the first decision checkpoint. No policy approval, implementation, release, merge, or fleet migration is implied by creating these trackers.

1. Decide and specify the common model

Checkpoint Owner issue Entry conditions
REL-01 [Release checkpoint 1] Decide the shared preparation engine and authority boundary Ready for read-only reconciliation and decision work
REL-02 [Release checkpoint 2] Specify release units, channels, and state reconciliation REL-01
REL-03 [Release checkpoint 3] Review the common release policy and migration gates REL-02

Aether #61, Hygiene #27, and Relay #47 are completed foundations. Inspect and extend their actual outputs; do not redo them or assume closed trackers mean a draft/proposed policy is ratified. Hygiene #37 owns the relevant conventional-commit/emoji/PR-title semantics. Historical commit normalization is outside this roadmap.

2. Implement the shared core

Checkpoint Owner issue Entry conditions
REL-04 ️ [Release checkpoint 4] Implement reviewed release preparation through the selected adapter REL-03
REL-05 [Release checkpoint 5] Add preview, prerelease, and stable publication handoffs REL-04
REL-06 [Release checkpoint 6] Validate the evolved release model and authority rules REL-03
REL-07 [Release checkpoint 7] Provide pinned local release-authoring tools REL-03

After the model is accepted, validator and Realm tooling work can proceed when their own inputs are ready. The first execution path is REL-01 → REL-02 → REL-03 → REL-04 → REL-05. Existing EgoLint #29/#68/#69 work remains its own v1 chain; REL-06 adds the accepted successor without hijacking it.

3. Prove and deliver the file family

Checkpoint Owner issue Entry conditions
REL-08 [Release checkpoint 8] Prove the canonical release file family in the golden baseline REL-04; REL-05; REL-06
REL-09 [Release checkpoint 9] Materialize and safely update the release baseline REL-08

Then complete #19 as the thin starter/onboarding surface pointing to the canonical baseline. Required/conditional files include the release declaration, changelog(s), Taskfile handoffs, pinned shared workflows, applicable commit references, and adapter config/tracking files only when selected. Empathy proves composition; Holon materializes; neither owns a second release engine.

4. Reuse the existing consumer pilots

Choose one relevant, ready pilot at a time after its compatible producer pins and baseline are available. Existing accepted v1 work may finish independently; reconcile it before adding successor-contract changes.

Profile/proof Existing owner What completion must demonstrate
Rust CLI/binary egohygiene/aniflow#10 Cargo authority, thin shared workflow, verified release handoff, real artifact evidence
Python package egohygiene/mindgarden#27 Wheel/sdist version agreement, shared preparation, explicit PyPI publication state
Container egohygiene/realm#17 Product version tied to immutable digest; approved registry delivery tracked separately
React/site egohygiene/egohygiene.io#17 Repository release identity distinct from deploy/build identity
Publication and multiple components egohygiene/antidote#68 Independent units/linked groups as applicable, one authority each, collision-free release identities
Portable shell tool egohygiene/mantle#26 The common interface works without assuming a language package registry
Existing release-please app https://github.com/egohygiene/egohygiene/issues/284 Reconcile current config and final-commit semantics instead of installing a parallel engine

For the first usable core milestone, prove a Rust and a Python consumer plus a mixed-component fixture. Mark publication readiness separately from actual publication. Additional profiles graduate independently; the broader homelab, every registry, and every native channel are not core blockers.

5. Expand distribution with measured support

Policy and declaration prerequisites already exist: egohygiene/hygiene#29 → egohygiene/aether#63. The distribution parent is egohygiene/relay#48.

Checkpoint Owner issue Entry conditions
DIST-01 [Distribution checkpoint 1] Build from a declared target matrix and define adapter inputs egohygiene/hygiene#29; egohygiene/aether#63; REL-05
DIST-02 [Distribution checkpoint 2] Emit install evidence and a compact README matrix DIST-01
DIST-03 [Distribution checkpoint 3] Add the Homebrew delivery adapter DIST-01; DIST-02
DIST-04 [Distribution checkpoint 4] Add the Debian/APT delivery adapter DIST-01; DIST-02
DIST-05 [Distribution checkpoint 5] Add the RPM repository delivery adapter DIST-01; DIST-02
DIST-06 [Distribution checkpoint 6] Add the Scoop reference delivery adapter DIST-01; DIST-02

The first native channel sequence is Homebrew, Debian/APT, RPM-family, then a Scoop Windows reference, adjusted only by an explicit applicability decision. Each is an independent checkpoint after the common inputs; a blocked account or runner for one channel must not stall another ready channel. Use egohygiene/renderflow#419 as product-owned Renderflow qualification, and a smaller eligible Rust plus Python canary to prove reuse. Packaging recipes alone do not establish published support.

The full extension queue remains in Relay #48: language registries, OCI, WinGet, Chocolatey, AUR, Alpine/APK, Snap, Nix, additional architectures, and upstream-distro submissions where desired. Each selected extension gets one bounded owner checkpoint before coding. These are visible backlog choices, not hidden prerequisites or promises of universal acceptance.

6. Observe and adopt across the organization

Each active catalog row eventually receives an explicit profile, adoption result or blocker, and channel applicability decision. Unknown, not-published, experimental, stale, blocked, and not-applicable remain first-class states. The README matrix is generated from evidence, with details linked rather than copied into a large README.

Independent, smaller naming lane

egohygiene/relay#71 → egohygiene/optiflow#115. Relay source already includes part of this change; publication of the producer contract and the consumer's exact repin must be verified separately. This can proceed without completing the broad system, but does not waive OptiFlow's egohygiene/optiflow#93 qualification or alter historical release evidence.

Definition of progress and stopping points

  1. Model ready: a reviewed engine/authority decision, versioned contract, and honestly recorded policy status.
  2. Core usable: shared preparation, channel handoffs, validator, applicable baseline/tooling, and the selected Rust/Python/mixed proof are verified against exact producer versions.
  3. Distribution proven: only the selected channels with real release/install evidence become supported; unselected extensions remain explicit.
  4. Adoption complete: every applicable repository has a verified result or explicit approved exception/blocker; no arbitrary all-green requirement hides missing evidence.

After each checkpoint, record the issue/PR, exact revisions and checks, implementation versus publication state, blockers, and the next ready issue. Preserve partial work in a branch/draft PR before context is exhausted. Review/merge/publication follow their own authority; issue closure requires its stated evidence. Do not start the whole graph in one chat or wait for unrelated optional channels.

Parent and dependency relationships are explicit links here and in each checkpoint. This batch did not create native GitHub sub-issue/dependency edges because that mutation is unavailable in the current connector.

Fresh-chat starting prompt

Start the shared release-system roadmap at #20. Work only on the first dependency-ready checkpoint, currently egohygiene/aether#94. Read the applicable repository agent guidance, canonical architecture/decisions, continuity handoff, and live linked issue/PR state before changing anything. Reuse completed work and preserve concurrent work. Produce one bounded, reviewable checkpoint, save its branch/PR and verification evidence, update the durable handoff with the next ready issue, and pause for review. Release-please is a candidate to evaluate, not an already-ratified choice. Do not infer authority to merge or publish from the roadmap.


Original foundation scope retained for continuity

Outcome

Coordinate the one-PR-at-a-time rollout of the organization release convention without moving ownership away from individual repositories.

Workstream issues

Existing release work to reconcile, not duplicate

Adoption registry

The Pace implementation must inventory every active repository and classify it before mandatory enforcement:

  • Foundation and policy: .github, Aether, Hygiene, Relay, Egolint, Pace, Holon, Observatory, Sanctuary.
  • Tools and environments: Mantle, Realm, AniFlow, OptiFlow, Beacon, Mindcap, Mindgarden, Flow, Athena, RenderFlow, Identity.
  • Products and publications: egohygiene, egohygiene.io, Akashic, Antidote, Reflector, Store, Civics, Filament.
  • Private, incubating, and archived repositories use an explicit applicability state; they are never silently excluded.

Rollout order

  1. Aether contract; in parallel, Relay feat(reflector): bootstrap organization analysis engine #6 durable reports.
  2. Hygiene baseline and Relay profile/mechanics.
  3. Egolint validation and .github starter surface.
  4. Python, Rust, container, web, publication, and shell pilots.
  5. Pace read-only fleet adoption matrix.
  6. Repository-owned remediation PRs for every remaining catalog row; only later consider Pace-authored PR proposals.

Program acceptance criteria

  • Every active repository has a tracked release-profile decision and root changelog status.
  • Every release-capable repository is validated against the same versioned contract.
  • Every profile has at least one proven consumer before broad adoption.
  • External distribution/deployment state is explicit and never faked by a GitHub tag.
  • No release process relies on mutable action refs, force-updated immutable tags, or unreviewed automatic version rewrites.

Activity

  1. self-assigned this
    on Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions