AI without the tech debt: software craftsmanship in the age of generated code