Я пока вижу это как-то так:
- Модуль за модулем прибраться в структуре проекта, выкинуть устаревшие вещи, пометить вещи, на которые нужно внимательнее посмотреть позже (неактуальная документация, устаревший код, штуки, которые могут стать скоро легаси)
- Обновить README, проверить его инструкции на чистой системе, убедиться, что покрыты основные кейсы и описан сценарий "как разрабатывать"
- Пройтись по всем внешним эндпоинтам и проверить актуальность документации для них. Описать странные юзкейсы, особенности работы, etc.
- Экспортировать трекер задач прямо в репозиторий 😈
- Пройти по всем модулям, задокументировать каждый, рассказать что часто меняется
Хорошее начало. Дополню тем, что всегда оказывалось надо
1) общее описание архитектуры и принципов. Из чего вы исходили, когда что-то делали, как оно все должно работать вместе. Детали модулей можно почти всегда выяснить по коду, а вот общие принципы выявить тяжело;
2) наиболее проблемные области по текущему опыту. чтобы бы советовали сделать самим себе, если бы не прервались.
3) инструкция по расширению - грубо говоря, как добавить новую фичу или модуль
Сохранение всех задач, всех баг репортов, всех инцидентов, всей документации это было прямо обязательно, если передавать между конторами. Внутри конторы у нас все хранилось вечно. Если были какие-то форумы или иные каналы общения с пользователями/заказчиками - то их. В одном случае, сохранили всю почтовую переписку по проекту - из нее смогли потом многое уточнить. Сейчас я бы еще и все чаты выгрузил
В общем оказывалось, что важнее сохранить всю "первородную" документацию (оригиналы решений и обсуждений) и написать инструкцию по быстрому взлету (1-2-3), чем описать все частные детали. До последних часто вообще руки не доходили у новой команды - они часто все равно не точные (особенно если писались в спешке перед сдачей) или уже по коду проще разобраться было.