Automate UX Forum post-session schedule update and issue creation
### Summary
After each UX Forum session, the host must manually ([handbook reference](https://handbook.gitlab.com/handbook/product/ux/ux-forum/#updating-the-schedule-and-preparing-for-next-sessions)):
1. Remove the completed session row from the [UX Forum schedule](https://gitlab.com/-/ide/project/gitlab-com/content-sites/handbook/edit/main/-/assets/includes/product/ux-forum-schedule.md) in `gitlab-com/content-sites/handbook`
1. Create a tracking [issue from the UX Forum template](https://gitlab.com/gitlab-org/gitlab-design/-/issues/new?issuable_template=UX%20Forum) in `gitlab-org/gitlab-design` for the next scheduled session, populated with the host and speakers
This is predictable, repetitive work that is easy to forget. We should automate it.
### Proposal
Build a scheduled CI pipeline in `gitlab-com/designops` that:
1. **Runs daily** at 9am PDT and parses the schedule table in `assets/includes/product/ux-forum-schedule.md`
1. **Compares today's date** against the schedule rows. If today matches a completed forum date (or is the first business day after), it proceeds. Otherwise it exits as a no-op.
1. **Opens an MR** in `gitlab-com/content-sites/handbook` removing the completed session row from the schedule
1. **Creates a tracking issue** in `gitlab-org/gitlab-design` using the UX Forum template, pre-filled with:
- Title: `UX Forum - {formatted date}`
- Date, host handle, and speaker handles from the *next* row in the schedule
A **manual trigger** should also be available as a fallback for re-runs or edge cases.
Additionally, the automation depends on parsing a hand-edited markdown table. If formatting changes, the parser breaks. We should add a CI lint check on the schedule file to catch malformed rows early
### Why the schedule file is the source of truth for timing
The UX Forum does not follow a fixed cron cadence — dates are explicitly set and alternate timezone slots. Rather than hardcoding a biweekly cron that drifts, the pipeline runs daily and reads the schedule file to determine whether a forum just occurred. This means:
- If a forum is rescheduled and the markdown is updated, the automation follows automatically
- No cron maintenance or multiple scheduled pipelines needed
- The cost is a daily no-op pipeline, which is cheap
### Scope
**In scope:**
- Schedule row removal (via MR)
- Next-session issue creation (pre-filled from schedule)
- Manual trigger fallback
**Out of scope:**
- Video upload or Slack notifications
- Schedule *generation* (the rotation is still managed by Design Managers)
### DRI
DesignOps owns creating and maintaining this automation. The UX Forum itself and its schedule remain owned by the Product Design Managers.
### References
- [UX Forum handbook — Updating the schedule](https://handbook.gitlab.com/handbook/product/ux/ux-forum/#updating-the-schedule-and-preparing-for-next-sessions)
- [Schedule source file](https://gitlab.com/gitlab-com/content-sites/handbook/-/blob/main/assets/includes/product/ux-forum-schedule.md)
- [UX Forum issue template](https://gitlab.com/gitlab-org/gitlab-design/-/blob/main/.gitlab/issue_templates/UX%20Forum.md)
issue