…erge (#7616)
## Summary
- When impl-generate fails (e.g. environment setup error), it tags the
parent issue with `impl:LIB:failed`.
- A subsequent successful retry merges via impl-merge.yml, but only
removed `:pending` — leaving the stale `:failed` label.
- Add `--remove-label "impl:${LIBRARY}:failed"` to the canonical
merge-time label sweep.
## Observed on #3802 (skewt-logp-atmospheric/makie)
First impl-generate attempt failed during *Setup Julia + Makie*
(Project.toml declared the repo as a Julia package). PR #7614 fixed
Project.toml; retry succeeded and PR #7615 merged via impl-merge.yml —
but the issue closed with both `impl:makie:done` and `impl:makie:failed`
for the same library. The stale label has been cleaned up on #3802
manually.
## Why this matters even though counts didn't break
The close-issue counting in impl-merge.yml uses `if/elif`, so `:done`
wins and totals stayed correct here. But the labels themselves are a
contract other readers consume — `sync_to_postgres.py`, the UI, future
workflows. Better to keep the source of truth honest.
## Test plan
- [ ] CI passes
- [ ] Next impl-generate retry-after-failure run produces an issue with
only `:done`, no stale `:failed`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Implementation:
skewt-logp-atmospheric- julia/makieImplements the julia/makie version of
skewt-logp-atmospheric.File:
plots/skewt-logp-atmospheric/implementations/julia/makie.jlParent Issue: #3802
🤖 impl-generate workflow