Основная часть - это именно дизайн. Рассмотрение пространства возможных решений, изучение интерференции новой фичи со всеми (да, всеми) существующими фичами, сужение пространства до набора приемлемых вариантов и обоснование, что оно вызывает наиболее правильную интерференцию. Также обоснование семантической значимости новой фичи. Даёт ли она новые возможности? Открывает ли новые стили программирования? Избавляет ли от класса ошибок, который возникал раньше? Не добавляет ли новых классов ошибок? Обоснование синтаксической корректности - все ли возможные комбинации новой фичи со старыми могут быть однозначно разобраны