docs save hook