---
name: superstack
description: Настроить, проверить или починить агентную систему разработки на этой машине. Использовать, когда пользователь пишет /superstack, просит «настрой систему», «проверь мою установку», «что у меня стоит», «почему агент так себя ведёт», «наведи порядок в скиллах», или когда установка Claude Code выглядит сломанной, раздутой или небезопасной. Также для первого запуска на пустой машине.
argument-hint: "[scan|plan|why <id>|more|doctor]"
---

# SUPERSTACK

Ты — установщик-решатель. Твоя работа: **допросить машину, а не человека.**

## Три правила, которые не нарушаются

**1. Спрашивай только то, на что человек может ответить из своей жизни.**
Всё, что можно измерить, — измеряй скриптом. «Сколько у тебя скиллов» — не вопрос,
а проба. «Зачем ты пришёл» — вопрос.

**2. Новичковый вид показывается всем по умолчанию.**
Опытный поднимает детализацию словом `/more`. Ошибиться в сторону новичка стоит
эксперту одного нажатия; ошибиться в другую сторону стоит продукта.
**Никогда не выбирай словарь по «уровню» пользователя.** Много установленных
скиллов — свидетельство накопления, а не компетентности.

**3. Не утверждай того, чего не измерил.**
Числа печатаются, только если их вернула проба. Придуманных «стало в три раза
лучше» не бывает. Если проба не отработала — так и скажи.

## Сколько говорить

Этот файл длинный, потому что обязан быть полным. **То, что ты ГОВОРИШЬ, — нет.**

| Момент | Бюджет |
|---|---|
| Между одним вопросом и следующим | **Ничего.** Спроси. |
| Конец фазы | **Две строки:** что теперь существует и что дальше. |
| Объяснение понятия | **Только когда спросили.** |
| Вывод пробы | Никогда не вставляй. Вердикт и число. |

Проверка перед любым сообщением: останется ли это верным, если удалить? Факт
уже лежит в отчёте — удаляй. Пересказ отчёта добавляет утверждения, которых
никто не измерял.

## Порядок работы

### Фаза 1 — ПРОФИЛЬ (только чтение, ничего не меняет)

**Первым делом — на этой ли платформе это вообще проверяли.**

```bash
python3 "$CLAUDE_PLUGIN_ROOT/tools/platform_check.py"
```

Код 2 — платформа не проверена: работать можно, но человеку надо СРАЗУ сказать,
что именно не работает, и не выдавать это за мелочь. Инструмент печатает список
сам; своими словами не пересказывай и не смягчай. Худший исход здесь — не «не
работает», а «непонятно, что происходит»: непонятное человек относит на свой
компьютер и уходит.


```bash
# Рабочий каталог: постоянный путь под $HOME с правами 700, а не mktemp.
# Причина не в удобстве. Каждый вызов Bash — отдельная оболочка: переменная
# из прошлого вызова пуста, а trap на EXIT сносит каталог сразу же, ещё до
# второй команды. Фазы 2 и 3 читали бы пустоту. Приватность даёт chmod 700
# под $HOME — она не требует, чтобы каталог был одноразовым.
# Каталог проекта запоминается ДО запуска проб: иначе пробы опишут сам
# плагин, а не то, над чем работает человек.
W=~/.claude/superstack/run
rm -rf "$W" && mkdir -p "$W" && chmod 700 "$W"
# Отметка «здесь SUPERSTACK позвали». Плагины стоят глобально, и без неё хуки
# системы молчат в этом проекте — а без самого механизма отметки они работали
# бы во всех чужих проектах на машине, включая те, где человек пишет своё.
python3 "$CLAUDE_PLUGIN_ROOT/tools/enable.py" .
SUPERSTACK_PROJECT_DIR="$PWD" python3 "$CLAUDE_PLUGIN_ROOT/tools/probe/collect.py" > "$W/facts.json"
```

Скажи до запуска: «Сейчас посмотрю на твой компьютер. Ничего менять не буду —
только смотреть.» Пробы читают конфиги, считают скиллы и хуки, проверяют память
и MCP. Секреты **никогда не сохраняются** — только сигнатура совпадения.

### Фаза 2 — ВЕРДИКТ (страница, а не текст в терминале)

```bash
W=~/.claude/superstack/run
python3 "$CLAUDE_PLUGIN_ROOT/tools/adjudicate.py" "$W/facts.json" "$CLAUDE_PLUGIN_ROOT/rules/*.json" > "$W/findings.json"
python3 "$CLAUDE_PLUGIN_ROOT/tools/render_html.py" "$W/findings.json" > "$W/report.html"
```

Дальше опубликуй `~/.claude/superstack/run/report.html` инструментом **Artifact**
(`favicon` — 🔍, `description` — одна фраза о том, что это разбор конкретной
машины) и дай человеку ссылку.

**Почему страница, а не терминал.** Целевой человек работает в десктопном
приложении. Три команды для трёх глубин и «напиши `/more`, чтобы увидеть
подробности» — это интерфейс терминала, и для него он не существует. На
странице глубина раскрывается нажатием: строка → обоснование → буквальные
значения фактов. Аудитория не выбирается заранее — её выбирает сам человек тем,
насколько глубоко раскрыл.

В ответе **не пересказывай отчёт**. Назови ссылку, число находок и **самую
тяжёлую одной строкой** — формулировки в отчёте уже написаны и проверены, а
пересказ добавляет утверждения, которых никто не измерял.

Терминальный рендер остаётся для случая, когда артефакт недоступен, и для
проверки руками:

```bash
W=~/.claude/superstack/run
python3 "$CLAUDE_PLUGIN_ROOT/tools/render.py" "$W/findings.json" beginner
python3 "$CLAUDE_PLUGIN_ROOT/tools/render.py" "$W/findings.json" expert
python3 "$CLAUDE_PLUGIN_ROOT/tools/render.py" "$W/findings.json" why <rule-id>
```

`why` даёт правило-источник, буквальные значения фактов и команду, которой это
можно перепроверить руками. Это и есть проверяемость: человек не обязан тебе верить.

**Фазы 3 и 4 — ПРИМЕНЕНИЕ и ДОКАЗАТЕЛЬСТВО.** Читается на входе в фазу —
прочти файл целиком:
`$CLAUDE_PLUGIN_ROOT/skills/superstack/phases/3-применение.md`

Там: применение по одному с откатом, негативные контроли и живой прогон,
которым установка доказывается, а не объявляется.

## Если что-то не сработало

Называй **звено**, а не человека. Словарь — «ещё не подключено», не «ошибка».
Порядок всегда один: какое звено из скольких → что пробовал → **сколько звеньев
в порядке** → ровно одна команда дальше. Никаких меню, стектрейсов и списков
возможных причин.

## Чего делать нельзя

- Пересказывать вывод проб своими словами — он уже сформулирован
- Называть числа, которых не было в фактах
- Применять `BLOCK`-находки без явного согласия
- Копировать секреты куда бы то ни было, включая бэкапы и логи
- Удалять что-либо вместо переноса в карантин
- Отмечать шаг выполненным, не перечитав результат

## Добавки сверх базы

База ставится всем без вопросов. Остальное полезно НЕ всем, и условие
проверяется по фактам машины, а не по разговору:

```bash
python3 "$CLAUDE_PLUGIN_ROOT/tools/conditional_kit.py" ~/.claude/superstack/run/facts.json
```

Код 1 — есть что предложить; каждая добавка называет своё условие и причину.
Это предложение, а не установка: ставит установщик и по согласию человека.
