The fork's upstream-intake rule stops living only on a decision ticket. The release process documentation gains the policy where maintainers actually run releases from: intake at release-preparation sync points plus on-demand critical fixes, an intake freeze once a release branch opens admitting only justified release-blockers, one upstream fix per fork pull request with both upstream and fork references through the standard gates, conflicts resolved by keeping upstream logic and re-applying fork renames, and the qualification rule — fixes and user-instruction-changing documentation port, features are re-decided per release, dependency and CI churn ports only when a security advisory names it, and out-of-scope material is dropped at triage.
Acceptance criteria
A maintainer following only the release documentation can state when intake happens, when it freezes, what qualifies, and how a conflict is resolved, without opening the decision ticket.
The documentation names the retained internal module name as the reason conflicts concentrate at renamed user-visible surfaces.
Nothing in the updated documentation contradicts the existing worktree, pull-request, and never-commit-to-main rules.
Blocked by
None (can start immediately).
## Parent
[Spec: Voculinux — Void Linux (glibc) Wayland/niri port of Vocalinux](https://git.bongbetic.com/xavierk/voculinux/issues/16)
## What to build
The fork's upstream-intake rule stops living only on a decision ticket. The release process documentation gains the policy where maintainers actually run releases from: intake at release-preparation sync points plus on-demand critical fixes, an intake freeze once a release branch opens admitting only justified release-blockers, one upstream fix per fork pull request with both upstream and fork references through the standard gates, conflicts resolved by keeping upstream logic and re-applying fork renames, and the qualification rule — fixes and user-instruction-changing documentation port, features are re-decided per release, dependency and CI churn ports only when a security advisory names it, and out-of-scope material is dropped at triage.
## Acceptance criteria
- [ ] A maintainer following only the release documentation can state when intake happens, when it freezes, what qualifies, and how a conflict is resolved, without opening the decision ticket.
- [ ] The documentation names the retained internal module name as the reason conflicts concentrate at renamed user-visible surfaces.
- [ ] Nothing in the updated documentation contradicts the existing worktree, pull-request, and never-commit-to-main rules.
## Blocked by
None (can start immediately).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Parent
Spec: Voculinux — Void Linux (glibc) Wayland/niri port of Vocalinux
What to build
The fork's upstream-intake rule stops living only on a decision ticket. The release process documentation gains the policy where maintainers actually run releases from: intake at release-preparation sync points plus on-demand critical fixes, an intake freeze once a release branch opens admitting only justified release-blockers, one upstream fix per fork pull request with both upstream and fork references through the standard gates, conflicts resolved by keeping upstream logic and re-applying fork renames, and the qualification rule — fixes and user-instruction-changing documentation port, features are re-decided per release, dependency and CI churn ports only when a security advisory names it, and out-of-scope material is dropped at triage.
Acceptance criteria
Blocked by
None (can start immediately).
Merged in integration/spec16
1dd3986383pushed to fork/integration/spec16 (https://github.com/soubarnak/vocalinux/tree/integration/spec16), review PASS, gates flake8 E9,F63,F7,F82 + black --check + isort --check + mypy src/ clean, pytest 37 passed, npm jest 11 suites/92 tests + lint 0 errors + tsc clean + build OK