Automation: AI-Initiative quick-action commands (assign/unassign/label add/remove)
## Summary Add custom AI-Initiative quick-action commands: `/ai:assign-me`, `/ai:unassign-me`, `/ai:label-add`, `/ai:label-remove`. ## Work Track Cross-track (AI Core / coordination) ## Context / Background GitLab's built-in `/assign me` only handles the assignee — the AI Initiative's flow also needs to flip the work item status ("In progress", "Active") at the same time. Implement Drupal-side comment parsers that react to AI-prefixed commands posted on issues and apply the bundled changes. Parent / related: #3586474. This issue is blocked by the three exploration issues (#3586475, #3586476, #3586477) — the platform choice and the available `gitlab_api` primitives must land first. ## Tasks * [ ] `/ai:assign-me` → assign commenter + set work item status to "In progress". * [ ] `/ai:unassign-me` → if status is "Approved" / `state::accepted`, set status to "Active" / equivalent active state, and unassign commenter. * [ ] `/ai:label-add <label>` → add the named label (validate it exists on the project first). * [ ] `/ai:label-remove <label>` → remove the named label (no-op if absent). * [ ] Reject malformed commands with a single explanatory comment, do not spam. * [ ] Document the commands in the project README / contributor docs. ## Acceptance Criteria * [ ] All four commands work end-to-end on a test issue. * [ ] Status / assignee changes are applied via the GitLab work items GraphQL API (not just labels). * [ ] Unknown labels surface a friendly error instead of silently failing. ## Related issues ## AI Usage - [x] AI Assisted Issue — This issue was generated with AI assistance, but was reviewed and refined by the creator.
issue