def METHOD_NAME(cls, args: Namespace) -> int:
    """Decision procedure.
    Arguments:
        args: Arguments as returned by `parse_cron_args()`
    Returns:
        Shell return code.
    """
    # get schedulerId from TC queue
    if args.scheduler is None:
        task_obj = Taskcluster.get_service("queue").task(getenv("TASK_ID"))
        scheduler_id = task_obj["schedulerId"]
    else:
        scheduler_id = args.scheduler
    # clone the git repo
    repo = GitRepo(args.clone_repo, args.push_branch, args.push_branch)
    try:
        # create the scheduler
        sched = cls(
            repo,
            args.now,
            args.task_group,
            scheduler_id,
            args.docker_hub_secret,
            args.clone_repo,
            args.push_branch,
            args.dry_run,
        )
        sched.mark_services_for_rebuild()
        # schedule tasks
        sched.create_tasks()
    finally:
        repo.cleanup()
    return 0