Skip to content

[agent-issue]: support weekday-only fuzzy schedules and cron parity #1965

Description

@krubenok

Submission requirements

  • I generated this issue with an agent that used .github/agents/ado-aw.agent.md.
  • I reviewed the generated issue and confirm it is being filed directly in githubnext/ado-aw.

Problem summary

ado-aw 0.50.0 cannot express a fuzzy schedule that runs once per weekday. A workflow that should run Monday through Friday near 08:00 UTC-7 must currently choose between:

  • schedule: daily around 08:00 utc-7, which also runs on Saturday and Sunday
  • schedule: weekly on monday around 08:00 utc-7, which loses the required daily cadence

Azure Pipelines supports day-of-week ranges such as 1-5, so this is a parser and code-generation gap rather than a platform limitation.

gh-aw supports composable weekday forms including daily on weekdays, daily around 9am on weekdays, daily between 9:00 and 17:00 on weekdays, hourly on weekdays, and every 2h on weekdays. ado-aw's schedule documentation says its syntax is based on gh-aw's fuzzy schedule specification, but these forms are missing.

Minimum requested behavior:

on:
  schedule: daily on weekdays

The motivating workflow needs weekday filtering composed with fuzzy time and a UTC offset:

on:
  schedule: daily around 08:00 on weekdays utc-7

Reproduction details

Workflow source: .pipelines/agentic-workflows/slop-cop.md

  1. Compile with ado-aw 0.50.0 using the supported workaround:

    on:
      schedule: daily around 08:00 utc-7
  2. Inspect the generated .pipelines/agentic-workflows/slop-cop.lock.yml.

  3. The generated Azure Pipelines cron is 15 15 * * *, which runs every day.

  4. Try the supported single-day alternative:

    on:
      schedule: weekly on monday around 08:00 utc-7
  5. It compiles, but runs only once per week.

Expected: a weekday modifier should preserve daily cadence and deterministic fuzzy timing, generating the equivalent of 15 15 * * 1-5 for the currently selected scattered minute.

Observed: the grammar accepts daily-every-day or weekly-on-one-day schedules, but cannot combine daily cadence, Monday-through-Friday filtering, fuzzy around timing, and a UTC offset.

Reference: https://github.github.com/gh-aw/reference/schedule-syntax/

Proposed next step

Extend FuzzySchedule and its parser and code generation to support on weekdays as a composable modifier.

Acceptance criteria:

  • Support daily on weekdays.
  • Support weekday filtering with daily around ..., daily between ... and ..., and utc±N offsets.
  • Preserve deterministic scattering and emit Azure Pipelines day-of-week range 1-5.
  • Add parser and cron-generation tests for weekday plus UTC-offset composition.
  • Reject misplaced or conflicting modifiers with actionable compile-time errors.

For closer gh-aw parity, also support weekday modifiers on hourly and hour-interval schedules. A validated raw-cron schedule form would provide an escape hatch for schedules the fuzzy grammar does not yet cover.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestrustPull requests that update rust code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions