3.8 KiB
3.8 KiB
Proposal: install сам тянет свежий superpowers с git
Issue: #67. Связано: #49 (закрыт), #48 (роадмап), change dsh-install-source.
Ответ владельца 24.10.2026: «а давай инстал будет тащить сам свежую версию с
гита».
Why
После #49 install-time источник задаётся явно: --superpowers-from,
$DSH_SUPERPOWERS_SOURCE или ручной клон в ~/.dsh/superpowers. Это снимает
зависимость от ~/.claude, но перекладывает получение источника на человека и
не обновляет его: клон, сделанный полгода назад, остаётся «свежим» навсегда, а
WARN: legacy superpowers source на машине владельца так и висит, потому что
пиннинга нет.
Владелец хочет, чтобы dsh/install.sh --skills сам получал свежий superpowers:
первый запуск — клон, следующие — обновление. Явные флаги остаются для офлайна,
зеркал и отладки и сеть не трогают.
What Changes
- git — источник по умолчанию.
--skillsклонируетhttps://github.com/obra/superpowersв$DSH_HOME/superpowers(depth 1), если клона нет, и обновляетfetch --depth 1+reset --hard FETCH_HEAD, если есть. URL переопределяется$DSH_SUPERPOWERS_REPO(зеркала, локальные репозитории в тестах). - Порядок источников: явный источник (
--superpowers-from,$DSH_SUPERPOWERS_SOURCE) → git-клон (обновить/создать) → legacy-кэш Claude Code → legacy~/.claude/skills. Ручная копия~/.dsh/superpowersбез.gitиспользуется как есть сWARN(совместимость с #49). - Сеть и ошибки. Нет сети при существующем клоне —
WARN, работа из кэша. Нет сети, нет клона, нет других источников —FAILс кодом 1 и подсказкой--superpowers-from. Оборванный клон не оставляется на диске. --checkостаётся офлайновым: не клонирует и не обновляет, показываетok: superpowers source (<path>, git <sha>)для git-клона,WARNдля ручной копии без.git, legacy и «нет источника» — как в #49.- Тесты без сети: локальный git-репозиторий через
DSH_SUPERPOWERS_REPO(file://), проверка первого клона, обновления до нового коммита, офлайна и--check. - Документация. README/PORT: quick start без ручного клона, офлайн-путь,
DSH_SUPERPOWERS_REPO,--checkс sha.
Non-goals
- Вендоринг superpowers в репозиторий — отклонён в #49 (D-1) и остаётся отклонённым.
- Пиннинг тега/коммита и проверка подписи: «свежая версия» = последний коммит default-ветки; воспроизводимость установки обеспечивается глубиной 1 и записанным sha в выводе, а не неизменностью источника.
- Субмодули и LFS в клоне superpowers.
- Обновление ролей/локальных скиллов из сети: они по-прежнему из репозитория обвязки.