add gen task [ci skip]