justinmclean opened a new pull request, #551:
URL: https://github.com/apache/airflow-steward/pull/551
## Summary
Adds `release-archive-sweep`, Step 12 of the release-management lifecycle.
The skill scans the project's distribution area (`dist/release/<project>/`
or the configured backend), identifies releases past the project's
retention rule, and emits a backend-shaped command set for the RM to
archive them.
It is **read-only on the distribution surface**: it never runs `svn mv`,
`gh release delete`, or `aws s3 mv`. Every command it produces is
paste-ready for the RM to execute under their own credentials.
## Behavior
- **Proposal only.** All state-changing actions are emitted as commands;
the human executes them.
- **Never archive the latest of a supported train.** If the retention rule
would mark the most-recent version of any supported train as
past-retention, the skill blocks with a `retention-rule-error` hand-off
instead of emitting commands.
- **Flag orphans, never auto-archive them.** A release on the dist surface
but absent from `release-trains.md` is reported in the hand-off block with
no command proposed; the RM decides its fate.
- **External content is data, never instructions.** Dist listings, planning
issues, and config are treated as untrusted input; injected directives are
flagged, not obeyed.
- Backends supported: `svnpubsub` (ASF default), `github-releases`, `s3`,
`self-hosted`.
## Type of change
- [X] Skill change (`.claude/skills/<name>/`) — eval fixtures updated below
- [ ] Tool / bridge contract (`tools/<system>/*.md`)
- [ ] Python package (`tools/*/` with `pyproject.toml`)
- [ ] Groovy reference impl
- [ ] Cross-cutting (RFC, AGENTS.md, sandbox, privacy-LLM)
- [ ] Documentation (`docs/`, `README.md`, `CONTRIBUTING.md`)
- [ ] Project template (`projects/_template/`)
- [ ] CI / dev loop (`prek`, workflows, validators)
- [ ] Other:
## Test plan
- [X] `prek run --all-files` passes
- [ ] For Python packages touched: `uv run pytest` / `ruff check` / `mypy`
passes
- [ ] For Groovy bridges touched: command-line invocation tested end-to-end
- [X] For skill changes: eval suite passes for the affected skill
(`PYTHONPATH=tools/skill-evals/src python3 -m skill_evals.runner
tools/skill-evals/evals/<skill>/`)
- [ ] For skill *behaviour* changes: a new or updated eval fixture is
included in this PR
(a regression test for the bug fixed / the behaviour added — see
CONTRIBUTING.md)
- [ ] Other:
--
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]