Deliver idempotent label and assignment operations. An AI agent can ensure a label exists, apply or remove it, and assign an issue or request without exploratory existence queries or provider-specific syntax.
Acceptance criteria
Missing labels are created automatically before they are applied on every supported provider.
Existing label metadata is preserved unless an explicit update is requested.
Newly created labels receive deterministic defaults.
Adding an existing label, ensuring an existing label, repeating assignment, and repeating claim are safe operations.
Labels can be added to or removed from issues and pull requests/merge requests.
Assignment supports the current authenticated user and explicit users where the provider permits it.
Existing-label, missing-label, metadata-mismatch, assignment-failure, and replay tests cover all providers.
Part of [Provider-neutral tracker automation CLI and library](http://gitea.sagacity.ca/steve/skills/issues/16)
## Parent
[Provider-neutral tracker automation CLI and library](http://gitea.sagacity.ca/steve/skills/issues/16)
## What to build
Deliver idempotent label and assignment operations. An AI agent can ensure a label exists, apply or remove it, and assign an issue or request without exploratory existence queries or provider-specific syntax.
## Acceptance criteria
- [ ] Missing labels are created automatically before they are applied on every supported provider.
- [ ] Existing label metadata is preserved unless an explicit update is requested.
- [ ] Newly created labels receive deterministic defaults.
- [ ] Adding an existing label, ensuring an existing label, repeating assignment, and repeating claim are safe operations.
- [ ] Labels can be added to or removed from issues and pull requests/merge requests.
- [ ] Assignment supports the current authenticated user and explicit users where the provider permits it.
- [ ] Existing-label, missing-label, metadata-mismatch, assignment-failure, and replay tests cover all providers.
## Blocked by
- [Bootstrap the tracker runtime and provider selection](http://gitea.sagacity.ca/steve/skills/issues/17)
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.
Part of Provider-neutral tracker automation CLI and library
Parent
Provider-neutral tracker automation CLI and library
What to build
Deliver idempotent label and assignment operations. An AI agent can ensure a label exists, apply or remove it, and assign an issue or request without exploratory existence queries or provider-specific syntax.
Acceptance criteria
Blocked by