where,
a = 6.39
b = 7.90
c = 14.3
alpha = 84.4
beta = 86.4
gamma = 89.3

However, the result shows : Lattice spacing in x,y,z = 7.40 9.29 14.3 , which is not correct and I suspect it is a bug in lattice custom a1 a2 a3 command.

Secondly, space group = P-1 implies 2 basis in a unit cell, positioning x y z for 1st basis and -x -y -z for second basis. The problem is the 2 basis have a mirror symmetry to each other, hence defining the position for the 2nd basis cannot be done by translation. Do you know what command has to be used in order to define the basis position for this case, which is a system with space group?

Defining the position for each atom in a basis, x y z for each atom in the read_data file is in the form of fraction of lattice spacing or actual position?

where,
a = 6.39
b = 7.90
c = 14.3
alpha = 84.4
beta = 86.4
gamma = 89.3

However, the result shows : Lattice spacing in x,y,z = 7.40 9.29 14.3 ,
which is not correct and I suspect it is a bug in lattice custom a1 a2 a3
command.

"Lattice spacing" in LAMMPS is probably not what you think it is, esp
for triclinic geometries.
It is simply a distance metric that LAMMPS defines from your unit cell
which is used by other commands as a convenient way to specify distance.
See the lattice doc page for a description of how LAMMPS computes
the "lattice spacing" for non-orthogonal unit cells.

2) Secondly, space group = P-1 implies 2 basis in a unit cell, positioning x
y z for 1st basis and -x -y -z for second basis. The problem is the 2 basis
have a mirror symmetry to each other, hence defining the position for the
2nd basis cannot be done by translation. Do you know what command has to be
used in order to define the basis position for this case, which is a system
with space group?

If you have a unit cell of any shape, can you not specify explicit
positions for the
2 atoms in that unit cell? That is what the basis option in the lattice command
is asking you to do.

3) Defining the position for each atom in a basis, x y z for each atom in
the read_data file is in the form of fraction of lattice spacing or actual
position?

The read data file always uses actual positions. You don't even need to
use the lattice command if all your atoms are in a data file. Hence it
is the most general way to have LAMMPS start with any config of
atoms you want.

Thanks for your information Steve. I had understood after reading section 4.12 in LAMMPS manual. However, I have 1 question.
My sample is a triclinic unit cell with P-1 space group, and consist of 42 atoms per basis. I have no problem in creating a triclinic unit cell with 84 atoms (since 2 basis per unit cell) in read data file. However, I would like to increase the simulation box with periodic boundary conditions to say 4 by 4 by 4 triclinic unit cell. In this case, I will have 5376 atoms. But it is not efficient to specify all the positions for 5376 atoms in read data file. I would like to ask what command should I use in order to carbon copy the 42 atoms or 1 basis to all the simulation box?

Thanks for your information Steve. I had understood after reading section
4.12 in LAMMPS manual. However, I have 1 question.
My sample is a triclinic unit cell with P-1 space group, and consist of 42
atoms per basis. I have no problem in creating a triclinic unit cell with 84
atoms (since 2 basis per unit cell) in read data file. However, I would like
to increase the simulation box with periodic boundary conditions to say 4 by
4 by 4 triclinic unit cell. In this case, I will have 5376 atoms. But it is
not efficient to specify all the positions for 5376 atoms in read data file.
I would like to ask what command should I use in order to carbon copy the 42
atoms or 1 basis to all the simulation box?