Cylc set for a task with multiple outputs doesn't seem to do anything

Perhaps I’m misunderstanding cylc set. But I have a task, with this sort of graph

    [[graph]]
        R1 = """
            foo:failed? => bar
            foo? => aaa
        """

When I do cylc set on foo, it doesn’t seem to do anything. Unless I am specific and do cylc set -o succeeded.

$ cylc set retry/run5 //20201010T0000Z/foo
Command queued
$ cylc show retry/run5 //20201010T0000Z/foo
title: (not given)
description: (not given)
URL: (not given)
state: waiting
prerequisites: (None)
outputs: ('⨯': not completed)
  ⨯ 20201010T0000Z/foo expired
  ⨯ 20201010T0000Z/foo submitted
  ⨯ 20201010T0000Z/foo submit-failed
  ⨯ 20201010T0000Z/foo started
  ⨯ 20201010T0000Z/foo succeeded
  ⨯ 20201010T0000Z/foo failed
output completion: incomplete
  ⨯ ┆  succeeded
  ⨯ ┆  or failed
$ cylc set -o succeeded retry/run5 //20201010T0000Z/foo
Command queued
$ cylc show retry/run5 //20201010T0000Z/foo
title: (not given)
description: (not given)
URL: (not given)
state: succeeded
prerequisites: (None)
outputs: ('⨯': not completed)
  ⨯ 20201010T0000Z/foo expired
  ✓ 20201010T0000Z/foo submitted
  ⨯ 20201010T0000Z/foo submit-failed
  ✓ 20201010T0000Z/foo started
  ✓ 20201010T0000Z/foo succeeded
  ⨯ 20201010T0000Z/foo failed
output completion: complete
  ✓ ┆  succeeded
  ⨯ ┆  or failed

Based on the examples in the cylc set --help docs

Examples:
  # complete all required outputs of 3/bar:
  $ cylc set my_workflow//3/bar

I expected that doing cylc set ... foo would set the failed and succeeded outputs. Or, is it, because its a ? task, it does nothing as they are all considered optional?

Yep.

This task can fall either way, it can either fail or succeeded so it doesn’t have any required outputs.

Note, in future the scheduler will log a warning if you try to set required outputs on a task that has no required outputs: `cylc set`: log warning when no outputs specified and task has no required outputs by MetRonnie · Pull Request #6505 · cylc/cylc-flow · GitHub