- .gitignore: tmp/
- README: раздел «Конвенции репозитория» — tmp/ вместо /tmp,
submodule как источник, имя агента из файла, render_listing для списков,
идентичность коммитов
- skills list / catalog list распознают неинициализированные сабмодули:
жёлтое предупреждение, строка «не инициализирован»,
в итоге — «Стянуть: harness catalog init»
- новый action catalog init: стягивает сабмодули на зафиксированных
коммитах, идемпотентен
- catalog update теперь работает из свежего клона:
сначала init, потом --remote
- skills install подсказывает про catalog init, если источники не стянуты
- русское склонение чисел (plural): 1 скилл / 2 скилла / 5 скиллов
- README: раздел «Свежий клон», правило 10 в «Правилах вывода списков»
- один рендерер render_listing() для всех списочных команд
- заголовок ВЕРХНИМ РЕГИСТРОМ, строка источника, легенда отметок, группы, итог, «куда ставится»
- skills list и agents list теперь одного вида: имя + мета + отметки + описание
- catalog list — только источники (состав смотреть в skills list), тот же стиль
- skills installed переведён на те же заголовки, убраны англ. вкрапления
- фикс: заголовок группы повторялся перед каждым элементом
- фикс: хвостовые пробелы — rstrip не работал из-за ANSI-reset, добавлен trim_line()
- README: раздел «Правила вывода списков»
- грамматика: harness <объект> <действие> (skills / agents / mcp / catalog / hermes / opencode)
- skills list теперь показывает каталог: что доступно к установке, с отметками ✓/·
- skills installed — прежний вид «что реально стоит» (включая не из каталога)
- фикс: установленные скиллы не находились — Path.rglob не разворачивает симлинки, перешёл на os.walk(followlinks=True)
- в листинге каталога виден sha источника и признак «⚠ сдвинут»
- README переписан под новую грамматику
- catalog/developer-documentation-skill: submodule → NateBJones-Projects/developer-documentation-skill (v1.0.1, CC BY 4.0 / MIT)
- README: раскладки репозиториев каталога и ручная установка скиллов