Adjust last operarion menu does not work with newly made mesh and mesh is placed twice
This was a quick answer to the user's question, however batFINGER's answer provides more details on how to improve the add-on. It also addresses other issues such as the architecture/structure, imports and the naming convention.



If you want to use object_data_add() from bpy_extras.object_utils then remove the object creation and linking to the scene from add_object.

def add_object(self, context):

    verts = [(1, 1, 0), (-1, 1, 0), (-1, 0.9, 0), (-0.25, 0.9, 0),] 

    mesh = bpy.data.meshes.new("mesh") 

    bm = bmesh.new()

    for v in verts:
        bm.verts.new(v) 

    bm.faces.new(bm.verts)
    bm.to_mesh(mesh)  
    bm.free()

    object_data_add(context, mesh, operator=self)