Actually your question is not quite as basic as you might hope. Cycling workflows are potentially infinite in extent so Cylc can’t be “aware of” the whole workflow at once. Instead it maintains a pool of “task proxies” as a moving window on the workflow, and finished tasks that are no longer needed (to satisfy the prerequisites of upcoming tasks) are forgotten as the workflow moves on. If you want to re-run one of those, you have to manually “insert” the corresponding task proxy back into the pool before you can trigger it (and it will require manual triggering if its upstream tasks have also been forgotten).
By default an inserted task will spawn its own successor (same task, next cycle point) as normal - which is what you want (to run multiple instances of that same task at different cycle points) - but spawning only happens at job submit time, so you will have to trigger them one by one.
From your description you only want to run the inserted task at each cycle, not the tasks downstream of it in the graph as well - right? I suggest you try it in a simple test workflow like this:
# register as "toast"
cycling mode = integer
initial cycle point = 1
graph = "foo[-P1] => foo => bar & baz"
script = sleep 20
Let this run on to cycle point 8 or so, then hold the workflow and insert tasks
cylc insert toast baz.2 # or via the GUI
baz.2 (CLI or GUI) to run it and spawn its next instance, then trigger that, and so on until
baz catches up to the main window again.
Alternatively, note that this does not really require a workflow engine as you are only running a series of single tasks, disregarding dependencies etc. So you could just write a short script to run each one in succession with the
cylc submit command - which runs tasks separately, outside of the the workflow engine. The job logs will still end up in the same place.
Hope that helps!