- манифест читается так, как записан: решётка внутри строки не открывает
комментарий, скобка внутри комментария не закрывает массив, имя внутри
комментария не становится подпиской; новый ключ встаёт после массива,
а не внутрь него
- всё записываемое проходит через manifest.Quote — обратный слэш в пути
делал файл, который инструмент сам не читает
- маркер локальной части переехал в doc и пропускает огороженные блоки:
процитированный в примере маркер больше не считается границей, а копия
без маркера не перезаписывается молча
- лишний позиционный аргумент отсекается: flag прекращал разбор и прятал
флаги после себя, из-за чего pull, list и check игнорировали --for
- заведены тесты проверок копий, включая молчание на исправной копии
- suite retire снимает правило, конвенцию или тему: правило остаётся заглушкой
с датой и причиной, имя уезжает в раздел выбывших, снятие с непогашенными
ссылками отклоняется с перечнем мест
- добавлена проверка META-30: короткое описание языка обязано называть все
слова словаря, иначе читатель копии толкует их по памяти
- retired-раздел манифеста больше не считается объявлением пути: снятый
префикс означает, что файл ушёл вместе с ним
- suite init создаёт директорию и манифест со скелетом таблиц; suite add пишет
файл конвенции и вправляет запись в suite.toml, сохраняя комментарии
- без аргументов команды спрашивают поля с подсказками, с флагами берут всё
сразу и не спрашивают ничего; без терминала пустой вызов отказывает
- строка о версии языка генерируется из словаря набора, поэтому созданный файл
проходит suite check без правок
- починено разрешение extends: короткая форма бралась по суффиксу и могла
указать на сам файл; теперь неоднозначность либо избегается при записи, либо
сообщается ошибкой