code: func FixSubcommands(args []string) []string {
  	// Nothing do it if the first argument is a flag.
  	if len(args) == 0 || strings.HasPrefix(args[0], "-") {
  		return args
  	}
  	buf := make([]string, 0, len(args))
  	return append(append(buf, args[0]), Fix(args[1:])...)
  }
docs: // FixSubcommands is like Fix, except the first positional argument is
  // understood as a subcommand name and it is not moved.
  //
  // Converts [pos1 pos2 -flag value pos3] into [pos1 -flag value pos3 pos2].
  //
  // Taking cipd as an example, compare:
  //   * Default: cipd set-ref -ref=abc -version=def package/name
  //   * Improved: cipd set-ref package/name -ref=abc -version=def
  //
  // Much better.