Ролевая преамбула почти ничего не даёт
«Ты — опытный архитектор с двадцатилетним стажем» занимает место в контексте и почти не меняет ответ. Работает не роль, а требования к результату.
Приём кочует из подборки в подборку: начните запрос с назначения роли. «Ты — опытный архитектор», «ты — редактор с двадцатилетним стажем».
Я держал такие преамбулы в своих шаблонах года полтора, пока не убрал их из одного и не заметил разницы. Потом убрал из остальных — и тоже не заметил.
Объяснение, которое меня устраивает: роль задаёт регистр, а не знание. Модель начинает писать чуть более уверенно и с чуть более отраслевой лексикой, но набор фактов, к которым она обращается, от этого не меняется. Двадцать лет стажа не появляются из строчки текста.
Что действительно меняет ответ — это требования к результату. Не «ты опытный архитектор», а «предложи два варианта, для каждого назови условие, при котором он проигрывает». Второе — проверяемое требование, и модель на него отвечает. Первое — атмосфера.
Есть исключение, ради которого преамбулу иногда стоит оставить: когда термин многозначен и роль работает как указание домена. «Ты работаешь с бухгалтерским учётом» снимает неоднозначность слова «проводка» дешевле, чем объяснение. Но это уже не роль, а уточнение контекста, просто записанное в форме роли.
Про длину. Отдельно раздражает, что ролевые преамбулы разрастаются: сначала одна строка, через месяц абзац с перечислением компетенций. Он едет в каждом вызове, стоит денег и вытесняет из внимания модели то, ради чего вызов сделан.