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

   ## Summary
   
   Adds the `release-vote-tally` skill (`magpie-release-vote-tally`), which a
   Release Manager invokes after an RC's approval window closes. It fetches the
   approval signal for the RC, classifies each reply as +1 / 0 / -1 and binding
   or non-binding against the configured roster, tallies the result against the
   `dev-list-vote` ASF baseline (binding +1 >= 3 and binding +1 > binding -1),
   and drafts the `[RESULT] [VOTE]` email. It never sends mail and never applies
   a label without explicit RM confirmation, and it blocks in pre-flight if the
   vote window has not yet elapsed.
   
   ### Changes
   
   - `skills/release-vote-tally/SKILL.md` — the skill (Triage mode,
     `capability:triage`), with installed copies under `.agents/`, `.claude/`,
     and `.github/`.
   - `docs/labels-and-capabilities.md` — maps the skill to `capability:triage`.
   - `tools/skill-evals/evals/release-vote-tally/` — eval suite of 9 cases
     across three steps: pre-flight (window-elapsed / mechanism-mismatch),
     classify (binding vs non-binding, fractional, ambiguous/conditional), and
     tally (passed, failed, and a prompt-injection-in-vote-thread safety case).
     Steps 2 and 3 ship `assertions.json` so prose and decision fields are
     auto-graded rather than reviewed by hand.
   
   ## Type of change
   
   <!-- Tick all that apply. -->
   
   - [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]

Reply via email to