thinking-via-negativa — скилл для Claude Code: убирать лишнее
Скилл заставляет агента сначала искать, что можно убрать, и только потом добавлять новое. Пригодится, когда тянет прикрутить ещё один слой или зависимость.
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-via-negativa -a claude-codeЧто делает thinking-via-negativa
Скилл описывает процедуру из семи шагов. Сначала агент формулирует цель и предлагаемое добавление одной строкой, затем перечисляет, что можно удалить или остановить ради той же цели. Кандидатов он собирает с доказательствами: данные об использовании, граф вызовов, метрики или эксперимент, а не вкусовщина.
Перед удалением срабатывает защита от необратимости. Агент делит элементы на восстановимые и те, что вернуть сложно, ищет зависимые места и отказывается трогать непроверенные защитные механизмы. Удаляет он сначала самый безопасный и ценный кандидат, проверяет результат и только потом берётся за следующий. Добавление допускается, если после вычитания цель всё ещё не достигнута, и тогда агент записывает, почему убрать не хватило.
Отдельный раздел перечисляет, когда скилл применять не стоит: аутентификация, валидация, тесты, лимиты запросов, повторы и проверки безопасности считаются нужными, пока не доказано обратное. Агент не станет удалять такое ради «чистоты» или меньшего числа строк. На выходе получается отчёт с целью, кандидатами на удаление, действием, планом проверки и списком того, что трогать нельзя.
Установка идёт через npx skills add, файл скилла кладётся в каталог платформы.
Какие задачи решает
- остановить рефлекс добавлять новую зависимость к каждой проблеме
- найти неиспользуемый код по данным о вызовах, а не на глаз
- отличить восстановимое удаление от необратимого
- сохранить проверки безопасности при чистке кодовой базы
- объяснить в отчёте, почему вычитания не хватило и нужна минимальная правка
Примеры запросов агенту
- Прежде чем добавлять кэш, посмотри, что можно убрать из этого пути
- Пройди по процедуре via negativa для этого узкого места
- Проверь, какие зависимости тут не используются, и предложи удаление с доказательствами
Как установить thinking-via-negativa
1Через Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-via-negativa -a claude-code2Вручную: положить файлы
~/.claude/skills/thinking-via-negativa/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/thinking-via-negativa/
1Через Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-via-negativa -a codex2Вручную: положить файлы
.agents/skills/thinking-via-negativa/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-via-negativa -a cursor2Вручную: положить файлы
.cursor/skills/thinking-via-negativa/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install tjboudreaux/cc-thinking-skills thinking-via-negativa2Вручную: положить файлы
.github/skills/thinking-via-negativa/SKILL.md1Через Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-via-negativa -a gemini-cli2Командой платформы
gemini skills install https://github.com/tjboudreaux/cc-thinking-skills --path skills/thinking-via-negativaВручную: положить файлы
.devin/skills/thinking-via-negativa/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-via-negativa -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о thinking-via-negativa
Как установить thinking-via-negativa в Claude?
Выполните npx skills add tjboudreaux/cc-thinking-skills --skill thinking-via-negativa -a claude-code. Файл скилла окажется в ~/.claude/skills/thinking-via-negativa/SKILL.md.
Что делает thinking-via-negativa?
Заставляет агента сначала искать, что можно удалить или остановить, и добавлять новое только если вычитание не помогло. Перед удалением он проверяет, насколько легко вернуть элемент обратно.
Какие элементы скилл не советует удалять?
Аутентификацию, валидацию, тесты, лимиты запросов, повторы и проверки безопасности. Они считаются нужными, пока не доказано, что мертвы.
Исходный текст
SKILL.md · MIT
--- name: thinking-via-negativa description: Use when the reflex is to add a feature, layer, or process. Prefer removing harmful or nonessential elements first, with an irreversibility guard before deletion. disable-model-invocation: true --- # Via Negativa Improve by subtraction before addition. Prefer removing harm, waste, and nonessential complexity; add only when a demonstrated need remains after removal candidates are exhausted. ## When to Use - About to add a feature, abstraction, dependency, process, or control to fix a problem. - Simplifying a system or workflow where complexity is the tax. - Prioritizing by deciding what not to keep, build, or maintain. - Performance or reliability work where eliminating a bad path beats bolting on mitigation. ## When NOT to Use - Load-bearing controls: auth, validation, tests, rate limits, retries, safety checks — presume necessary until proven dead. - A demonstrated requirement that cannot be met by removal or simplification. - Aesthetic minimalism without evidence of non-use or net harm. - Irreversible deletion without a rollback path when impact is unknown. ## Procedure 1. **Pause the add reflex.** State the goal and the proposed addition in one line. 2. **Ask the subtraction question first.** List what could be removed or stopped to achieve the same goal with less surface area. 3. **Catalog candidates with evidence.** Prefer unused, redundant, high-cost/low-value, or harmful elements. Require usage, call-graph, metrics, or experiment evidence — not taste. 4. **Apply the irreversibility guard.** Classify reversible vs hard-to-restore; identify dependents; refuse deleting unproven mystery guards. Plan staged removal or flag when risk is non-trivial. 5. **Remove the safest high-value candidate first.** Subtract, monitor, and verify absence of needed behavior before the next removal. 6. **Add only if the goal still fails.** If subtraction cannot meet the need, add the minimum change and record why removal was insufficient. 7. **Stop** when the goal is met by absence, or remaining candidates fail the irreversibility/evidence bar and a minimal addition is justified. **Stop condition:** Goal achieved via removal, or residual need documented after evidence-backed subtraction failed. ## Output ```text Goal: <desired outcome> Proposed add (if any): <thing> Removal candidates: <element — evidence — risk — reversible?> Action: remove <X> | staged remove <X> | add minimal <Y> because <why removal failed> Verification plan: <how absence/success is checked> Do-not-touch: <load-bearing items preserved> ``` ## Verification - Falsify if something was deleted without non-use/harm evidence, or a safety control was removed as "complexity." - Falsify if an addition shipped without a prior subtraction pass on the same goal. - Over-application guard: do not delete for line-count or purity when the element is load-bearing or the need is demonstrated.
© tjboudreaux · MIT · tjboudreaux/cc-thinking-skills