This repository now supports parallel ADR implementation. That requires a clear distinction between branch work, merged repo truth, and live platform truth.
- Branch and workstream phase
- create or claim a workstream in
workstreams.yaml - use one branch per workstream, with the
codex/prefix - prefer one git worktree per active workstream
- use
make start-workstream WORKSTREAM=<id>to create the correct worktree - update the workstream document while implementation is in progress
- do not bump
VERSIONjust because a branch changes - do not update
versions/stack.yamlwith speculative branch-only platform state - do not rewrite shared release files from a workstream branch
- create or claim a workstream in
- Merge phase
- merge the completed workstream to
main - bump
VERSIONonce onmain - move relevant changelog notes from
Unreleasedintodocs/release-notes/<version>.md - regenerate
RELEASE.mdand the release-notes index - if canonical status inputs changed, run
make generate-status-docsbefore cutting the release - update
workstreams.yamlstatus to reflect merge completion
- merge the completed workstream to
- Live apply phase
- apply merged automation from
main - verify the real platform state
- record or update a structured receipt under
receipts/live-applies/ - bump
platform_versioninversions/stack.yaml - update observed state in
versions/stack.yaml - mark the workstream as
live_applied: true
- apply merged automation from
These files are owned by the integration step on main, not by normal workstream branches:
/Users/live/Documents/GITHUB_PROJECTS/proxmox-host_server/VERSION/Users/live/Documents/GITHUB_PROJECTS/proxmox-host_server/changelog.md/Users/live/Documents/GITHUB_PROJECTS/proxmox-host_server/docs/release-notes/- canonical observed-state and release-track sections in
/Users/live/Documents/GITHUB_PROJECTS/proxmox-host_server/versions/stack.yaml - top-level integrated status summaries in
/Users/live/Documents/GITHUB_PROJECTS/proxmox-host_server/README.md
Workstream branches should usually change:
- their own automation and tests
- their own ADR and runbook material
- their own file in
docs/workstreams/ - their own entry in
workstreams.yaml
Before merging a workstream to main, confirm:
make validatepasses- the canonical workflow contract is current in
config/workflow-catalog.jsonif entry points changed - if the workflow depends on controller-local secrets, generated worktree artifacts, or external tokens,
make preflight WORKFLOW=<id>passes for the relevant entry point - the workstream document is current
- the touched ADR and runbook changes are committed
- shared-surface conflicts are resolved
- it is clear whether the change is repo-only or also live-applied
- one human or one assistant thread should own the actual merge to
main - if several workstreams are moving quickly, use a temporary
codex/integrationbranch to combine and test before merging tomain - do not let multiple workstream threads independently rewrite protected integration files
Unreleasedis the scratch area onmainfor merged-but-not-version-cut notes- cut a versioned file in
docs/release-notes/whenVERSIONchanges onmain - keep
changelog.mdas the portal-first index and scratchpad, not the detailed release archive - keep generated README status blocks current before cutting the versioned release-note file
- do not create fake release entries on long-lived feature branches
lv3 release statusorpython scripts/release_manager.py statusshows release blockers plus the machine-checkable1.0.0readiness criteria fromconfig/version-semantics.jsonlv3 release --bump minorprepares the release artifacts onmainlv3 release tag --pushfinalises the annotated release tag after the release commit exists
make start-workstream WORKSTREAM=adr-0011-monitoring
make start-workstream WORKSTREAM=adr-0014-tailscaleEquivalent raw git commands:
git worktree add ../proxmox-host_server-monitoring -b codex/adr-0011-monitoring
git worktree add ../proxmox-host_server-tailscale -b codex/adr-0014-tailscale