andreahlert opened a new pull request, #163:
URL: https://github.com/apache/airflow-steward/pull/163

   ## Summary
   
   Propose the **release-management skill family** docs-first, mirroring the 
Mentoring precedent (spec before code). Ten `release-*` skills compose the 
canonical 14-step ASF release lifecycle, from planning issue and version bump 
through `[ANNOUNCE]`, archive sweep, and per-release audit log. The family 
lands as docs only in this PR; the skills follow flagged `experimental` in 
subsequent PRs.
   
   Non-ASF adopters are first-class. Three backend switches parametrise 
distribution (`svnpubsub` | `github-releases` | `s3` | `self-hosted`), approval 
(`dev-list-vote` | `github-discussion` | `pr-approval` | `maintainer-roster`), 
and announcement (`announce-list` | `github-release-notes` | `site-post` | 
`discord-channel`). The 14 steps stay identical across backends; only the 
command set the agent emits changes. ASF TLPs are pinned to `dev-list-vote` and 
`announce-list` per 
[release-policy.html](https://www.apache.org/legal/release-policy.html).
   
   Two non-negotiable state-change boundaries cross every Drafting skill:
   
   - Agent never holds, invokes, or proxies the Release Manager's private 
signing key. Steps 3, 4, 10 emit paste-ready recipes; the RM signs and runs 
`svn commit` as themselves.
   - Agent never publishes. Steps 10 (`svn mv dist/dev → dist/release`) and 11 
(`[ANNOUNCE]` send, site bump merge) are the moments of release; the human 
commit is the act of release.
   
   Mirrors 
[`security-cve-allocate`](.claude/skills/security-cve-allocate/SKILL.md) 
(Vulnogram URL + paste-ready JSON, human submits) and satisfies [RFC-AI-0004 
Principle 1](docs/rfcs/RFC-AI-0004.md).
   
   ### What lands
   
   - [`docs/release-management/README.md`](docs/release-management/README.md), 
family overview, skill table, state-change boundaries
   - 
[`docs/release-management/process.md`](docs/release-management/process.md), 
14-step lifecycle with Mermaid flowchart, per-step description, label state 
diagram, Adopter backends table
   - [`docs/release-management/spec.md`](docs/release-management/spec.md), 
per-skill scope, state-change boundary, hand-off protocol, adopter contract
   - 
[`projects/_template/release-management-config.md`](projects/_template/release-management-config.md),
 family-wide adopter contract with the 3 backend switches
   - 
[`projects/_template/release-build.md`](projects/_template/release-build.md), 
build invocation, digest set, binary-exclude rules
   - [`projects/_template/pmc-roster.md`](projects/_template/pmc-roster.md), 
roster used by `release-vote-tally` to classify binding vs non-binding
   - [`projects/_template/site-repo.md`](projects/_template/site-repo.md), 
site-bump PR target for `release-announce-draft`
   - Wires the family into [`README.md`](README.md) (root) and 
[`docs/modes.md`](docs/modes.md) under Triage + Drafting subsections, each row 
marked `proposed`
   
   Operationalises the [`MISSION.md` § Initial Goals](MISSION.md) commitment to 
*cut a first Apache release through the standard process within 3 months of 
resolution adoption*, with non-ASF adopters served from day one.
   
   ### Status
   
   **Proposed.** No `release-*` skill code in this PR. Promotion of any skill 
from `experimental` to default-on, or from Drafting to a state-changing lane, 
requires evidence sourced from Release Managers and binding voters that the 
project's release process is healthier (fewer stalled RCs, shorter 
time-to-`[ANNOUNCE]`, fewer reverted promotions), not throughput numbers alone.
   
   ## Test plan
   
   - [ ] `prek run --all-files` green (markdownlint, typos, doctoc, 
end-of-file, trailing whitespace)
   - [ ] `lychee --offline` green across the 7 new + 2 modified files
   - [ ] doctoc TOCs reflect current H2/H3 structure on all 4 docs files + 4 
scaffolds
   - [ ] Cross-references between 
[`process.md`](docs/release-management/process.md), 
[`spec.md`](docs/release-management/spec.md), 
[`README.md`](docs/release-management/README.md), and 
[`projects/_template/release-management-config.md`](projects/_template/release-management-config.md)
 resolve
   - [ ] [`docs/modes.md`](docs/modes.md) rows match the skill table in 
[`README.md`](docs/release-management/README.md)
   - [ ] Adopter contract required-keys list in 
[`spec.md`](docs/release-management/spec.md) matches the keys actually defined 
in 
[`projects/_template/release-management-config.md`](projects/_template/release-management-config.md)
   - [ ] Non-ASF backend switches in [`process.md` § Adopter 
backends](docs/release-management/process.md) align with the switches block in 
[`release-management-config.md` § 
Backends](projects/_template/release-management-config.md)
   - [ ] ASF state-change boundaries (key, publication, mail, labels) 
consistent between [`spec.md`](docs/release-management/spec.md) and the 
Drafting-row purposes in [`README.md`](docs/release-management/README.md)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to