GitLab workflow automation for AI Initiative repos (exploration + rollout)
## Summary
Build out an automated GitLab workflow layer for the Drupal AI Initiative's GitLab projects (`project/ai`, `project/ai_agents`, providers, etc.) so that issue and MR housekeeping — state transitions, label hygiene, completeness checks, dependency review pings — happens automatically instead of requiring manual maintainer effort.
This is split into two phases:
1. **Exploration** — evaluate which Drupal-side platform is the right host for the automation logic (Rules, ECA, or a custom module on top of [`gitlab_api`](https://www.drupal.org/project/gitlab_api)).
2. **Automation rollout** — implement the concrete behaviors (custom slash-style quick actions, CI-driven state transitions, template completeness checks, dependency-review pings, etc.) on top of whichever platform comes out of exploration.
## Goals
- A single Drupal-hosted service that subscribes to GitLab webhooks for the AI Initiative repos and reacts with state/label/comment updates via the GitLab API.
- Reduce maintainer toil: issue states, labels, and comments stay current without manual nudging.
- Enforce a minimum quality bar on issues and MRs (template completeness, tests required for code changes, dependency review for `composer.json` diffs).
- Provide custom AI-Initiative-specific quick-action style commands (`/ai:assign-me`, `/ai:label-add`, etc.) that bundle multiple GitLab updates into one comment.
## Work Track
Cross-track (AI Core / AI UX / coordination)
## Owner / Lead
To be assigned.
## Sub-issues
### Exploration
- [ ] #xxx — Explore Rules-based Drupal → GitLab integration
- [ ] #xxx — Explore ECA + simple setup module for GitLab automation
- [ ] #xxx — Audit `gitlab_api` module and write follow-up webhook issues
### Automation rollout (blocked by exploration outcome)
- [ ] #xxx — Custom AI-Initiative quick-action commands (assign/unassign/label add/remove)
- [ ] #xxx — CI failure on MR returns issue from `state::needsReview` to `state::needsWork`
- [ ] #xxx — New commits on a branch reopen the issue and set `state::needsWork`
- [ ] #xxx — Issue template completeness enforcement (`needs-info` + comment)
- [ ] #xxx — Auto-label `needs-rebase` on MRs that need rebasing
- [ ] #xxx — `composer.json` change → `needs-dependency-review` + ping marcus and artem
- [ ] #xxx — Feature change without tests → return to `state::needsWork` and add `needs-tests`
## Timeline
Exploration first; automation rollout begins once a platform is chosen (target: within the current AI Initiative quarter).
## AI Usage
- [x] AI Assisted Issue — This issue was generated with AI assistance, but was reviewed and refined by the creator.
issue