thinking-theory-of-constraints — скилл для Claude Code: поиск узкого
Скилл для ИИ-агента, который помогает найти единственное ограничение в потоке задач и улучшать только его. Пригодится, когда добавление мощностей не поднимает общую скорость.
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-theory-of-constraints -a claude-codeЧто делает thinking-theory-of-constraints
Скилл включает режим мышления по теории ограничений. Агент называет единицу работы (запрос, задачу, PR, запись) и метрику, которая важна: сквозная скорость или задержка. Дальше он ищет стадию, которая тормозит весь поток, и подтверждает выбор фактами — загрузкой, длиной очереди, пропускной способностью. Мнение тут не аргумент, нужны измерения.
Порядок шагов такой: сначала выжать максимум из ограничения без крупных затрат — убрать простои, лишнюю работу, переделки. Потом подчинить остальные стадии ритму ограничения, чтобы не заваливать его работой. И только если этого мало — наращивать его мощность. После любого изменения агент перемеряет все стадии, потому что ограничение часто переезжает на другое место.
Скилл отказывается работать, когда нагрузка размазана и ни одна стадия не доминирует, или когда проблема в ошибках, а не в скорости потока. Ещё он не станет оптимизировать несколько стадий сразу «на всякий случай». Если узкое место уже известно и дешёвое исправление под рукой, применять его сразу — церемония не нужна.
Какие задачи решает
- найти стадию, которая тормозит весь конвейер
- отличить реальное ограничение от громкого мнения в чате
- поднять сквозную скорость без покупки новых мощностей
- перестать заваливать работой узкое место
- понять, куда переехало ограничение после правок
Примеры запросов агенту
- Разбери, почему сборка стала медленной: назови ограничение и подтверди его цифрами
- У нас очередь задач копится перед одним шагом — прогони теорию ограничений и предложи план
- После добавления воркеров скорость не выросла. Перемерь стадии и скажи, где теперь узкое место
Как установить thinking-theory-of-constraints
1Через Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-theory-of-constraints -a claude-code2Вручную: положить файлы
~/.claude/skills/thinking-theory-of-constraints/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/thinking-theory-of-constraints/
1Через Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-theory-of-constraints -a codex2Вручную: положить файлы
.agents/skills/thinking-theory-of-constraints/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-theory-of-constraints -a cursor2Вручную: положить файлы
.cursor/skills/thinking-theory-of-constraints/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install tjboudreaux/cc-thinking-skills thinking-theory-of-constraints2Вручную: положить файлы
.github/skills/thinking-theory-of-constraints/SKILL.md1Через Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-theory-of-constraints -a gemini-cli2Командой платформы
gemini skills install https://github.com/tjboudreaux/cc-thinking-skills --path skills/thinking-theory-of-constraintsВручную: положить файлы
.devin/skills/thinking-theory-of-constraints/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-theory-of-constraints -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о thinking-theory-of-constraints
Как установить thinking-theory-of-constraints в Claude?
Выполните npx skills add tjboudreaux/cc-thinking-skills --skill thinking-theory-of-constraints -a claude-code. Скилл окажется в ~/.claude/skills/thinking-theory-of-constraints/SKILL.md.
Что делает thinking-theory-of-constraints?
Проводит агента по шагам теории ограничений: определить поток и цель, найти узкую стадию по измерениям, выжать из неё максимум, подчинить остальные стадии и только потом наращивать мощность.
Когда этот скилл не подходит?
Если нагрузка распределена ровно и ни одна стадия не доминирует, либо если проблема в корректности, а не в скорости потока. В таких случаях скилл советует разбираться с ошибкой или с взаимодействием систем.
Исходный текст
SKILL.md · MIT
---
name: thinking-theory-of-constraints
description: When throughput or latency is pipeline-limited, identify the single binding constraint and exploit, subordinate, elevate, then recheck—ignore non-constraints.
disable-model-invocation: true
---
# Theory of Constraints
A throughput-limited system has one binding constraint. Improve only that constraint; local optimization of non-constraints wastes effort and often grows WIP.
## When to Use
- Latency or throughput goal where one stage dominates time or rate.
- Work piles up before one stage; downstream idles.
- Adding capacity/workers elsewhere does not raise end-to-end output.
- Need ordered plan: exploit cheaply before spending to elevate.
## When NOT to Use
- Load is spread; no stage dominates—use systems for interactions.
- Problem is correctness/fault, not flow rate—debug the fault.
- Bottleneck hops every run due to coupling/contention without a stable stage—systems or concurrency design, not five focusing steps.
- Constraint already known and a cheap fix is ready—apply it without ceremony.
## Procedure
1. **Define the flow and goal.** Name the unit of work (request, job, PR, record) and the metric that matters (end-to-end rate or latency).
2. **Identify the constraint with evidence.** Compare stages on utilization, queue/wait, and throughput. Constraint signals: near-100% use, longest queue, lowest stage rate, work piles here, more input does not raise system output. Prefer measured rates over opinions. If two candidates tie, pick the one whose improvement would raise system throughput first.
3. **Exploit (no major spend).** Maximize constraint output: cut idle, drop nonessential work on the constraint, reduce rework/setup, protect its time, improve quality at the constraint so output is not wasted. Estimate gain before spending.
4. **Subordinate non-constraints.** Pace upstream to constraint rate; do not flood WIP. Make other stages serve the constraint (readiness, clarity, immediate pull). Reject local utilization targets that grow queues before the constraint.
5. **Elevate only if still short.** After exploit is maxed, invest to raise constraint capacity (people, tooling, sharding, parallel path). Choose cheapest adequate elevation.
6. **Recheck (prevent inertia).** After elevation or large exploit, remeasure all stages—the constraint often moves. Return to step 2. Do not keep optimizing the old constraint.
**Stop when** constraint, evidence, exploit plan, subordination rules, and elevate-or-not decision are explicit—or when no single stage binds (exit to systems).
## Output
```text
system_goal: <throughput/latency objective>
flow: <stage sequence>
constraint: <stage or resource>
evidence: <utilization / queue / rate facts>
exploit: <actions, expected gain>
subordinate:
- stage: <name>
change: <how it serves the constraint>
elevate: <none | option + cost/gain>
next_constraint_watch: <what to remeasure after change>
```
## Verification
- **Falsify:** If raising the named stage cannot increase system throughput (another stage already caps), identification is wrong. If non-constraint optimizations change end-to-end rate, re-identify.
- **Stop:** Do not elevate before exploit is exhausted. Do not optimize multiple stages “just in case.”
- **Over-application guard:** One constraint at a time. Idle capacity upstream is not a problem to fill. Do not use TOC language for pure multi-loop emergence without a binding stage.
© tjboudreaux · MIT · tjboudreaux/cc-thinking-skills