thinking-triz — скилл для Claude Code: разбор противоречий в дизайне
Скилл для случаев, когда два требования к системе тянут в разные стороны. Называет конфликт и ищет решение без компромисса посередине.
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-triz -a claude-codeЧто делает thinking-triz
Скилл включается, когда параметры архитектуры, API или системы противоречат друг другу: стабильность против изменчивости, свежие данные против кэша, строгость против удобства. Вместо того чтобы соглашаться на «нельзя иметь и то и другое», он заставляет сформулировать противоречие по шаблону: какой параметр должен быть в одном состоянии ради одной выгоды и в другом ради второй.
Дальше процедура идёт по шагам. Сначала описывается идеальный конечный результат, потом проверяются четыре вида разделения — по времени, пространству, условию и масштабу. Если разделение не сработало, применяются изобретательские приёмы: сегментация, предварительное действие, инверсия, посредник, копирование, динамизация, ещё одно измерение. Перед добавлением новых сервисов скилл советует сначала поискать ресурсы, которые уже есть в системе. На выходе — конкретное проектное решение с указанием, где живёт каждое состояние, и честно названный остаточный компромисс, если он остался.
В скилле есть защита от лишнего применения: если один вариант явно лучше в заданных ограничениях, если дешёвое измерение показывает, какая сторона важнее, или если конфликт уже закрывает стандартный паттерн вроде cache-aside, CQRS или feature flags, TRIZ не запускается. Организационные конфликты между людьми тоже вне области — разделение работает с параметрами системы.
Какие задачи решает
- развести противоречащие требования к архитектуре без компромисса посередине
- сформулировать техническое противоречие в явном виде
- проверить разделение конфликта по времени, пространству, условию и масштабу
- подобрать изобретательский приём под конкретный конфликт параметров
- отличить реальное противоречие от обычной расстановки приоритетов
Примеры запросов агенту
- помоги разобраться: система должна быть стабильной для интеграций, но быстро меняться для продукта
- у нас свежесть данных против кэша — прогони через TRIZ
- кажется, тут только компромисс. Проверь по шагам, есть ли разделение
Как установить thinking-triz
1Через Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-triz -a claude-code2Вручную: положить файлы
~/.claude/skills/thinking-triz/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/thinking-triz/
1Через Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-triz -a codex2Вручную: положить файлы
.agents/skills/thinking-triz/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-triz -a cursor2Вручную: положить файлы
.cursor/skills/thinking-triz/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install tjboudreaux/cc-thinking-skills thinking-triz2Вручную: положить файлы
.github/skills/thinking-triz/SKILL.md1Через Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-triz -a gemini-cli2Командой платформы
gemini skills install https://github.com/tjboudreaux/cc-thinking-skills --path skills/thinking-trizВручную: положить файлы
.devin/skills/thinking-triz/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-triz -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о thinking-triz
Как установить thinking-triz в Claude?
Выполните npx skills add tjboudreaux/cc-thinking-skills --skill thinking-triz -a claude-code. Скилл окажется в ~/.claude/skills/thinking-triz/SKILL.md.
Что делает thinking-triz?
Разбирает техническое противоречие по шагам: называет конфликт параметров, формулирует идеальный результат, пробует разделение по времени, пространству, условию и масштабу, а при неудаче применяет изобретательский приём. На выходе — конкретное решение и явно указанный остаточный компромисс.
Когда TRIZ применять не стоит?
Если один вариант явно лучше в заданных ограничениях, если измерение показывает, какая сторона важнее, или если конфликт уже решает стандартный паттерн вроде cache-aside, CQRS или feature flags. Организационные конфликты между людьми скилл не разбирает.
Исходный текст
SKILL.md · MIT
--- name: thinking-triz description: When two design requirements seem mutually exclusive, name the contradiction, separate conflicting states, then invent a concrete no-compromise resolution. disable-model-invocation: true --- # TRIZ Resolve technical design contradictions without midpoint compromise. Name the conflict, separate the opposing states, and transform the system so both benefits hold. ## When to Use - Architecture, API, or system parameters pull in opposite directions (stable vs evolving, fresh vs cached, strict vs frictionless). - You are about to accept a trade-off because "you can't have both." - Every candidate solution shares the same structural weakness—the conflict is in the requirements, not the options list. ## When NOT to Use - One option is simply better under stated constraints → pick it; do not manufacture a contradiction. - A cheap measurement shows which side actually matters → measure instead of inventing a separation. - A standard pattern already resolves it (cache-aside, CQRS, feature flags, versioning) → apply the pattern directly. - Non-technical people/org conflicts → out of scope; separation targets system parameters. - Ordinary prioritization or resource allocation without opposing states of the same parameter. ## Procedure 1. **Name the contradiction in template form.** Write: "We need [PARAMETER] to be [STATE_1] for [BENEFIT_1] BUT [STATE_2] for [BENEFIT_2]." If this form fails, stop—use another method. 2. **State the ideal final result (IFR).** Describe both benefits held with minimal new machinery and no permanent midpoint sacrifice. 3. **Try separation before invention.** Test, in order: **time** (different moments), **space** (different components/layers), **condition** (context, load, risk), **scale** (interface vs implementation, aggregate vs element). Keep the first separation that delivers both benefits without hidden compromise. 4. **If separation fails, apply an inventive transform.** Prefer resource-light moves: segmentation, preliminary action, inversion (push/pull), intermediary, copying/replication, dynamization (flags/config), another dimension (metadata/versioning/events). Scan only principles that map to the named parameter conflict. 5. **Reuse existing resources first.** Before adding services or stores, check data, traffic, headers, schedulers, and side effects already present that can carry the separation. 6. **Lock a concrete resolution and stop.** Specify the design change, where each state lives, and how both benefits are preserved. Stop when a no-compromise design is stated, or when honest analysis shows only a constrained trade-off remains—then document the residual trade-off explicitly rather than forcing TRIZ theater. ## Output Emit a TRIZ resolution: - `contradiction`: parameter / state_1+benefit_1 / state_2+benefit_2 - `ideal_final_result`: both benefits without permanent compromise - `separation_tried`: time | space | condition | scale → result each - `inventive_move`: principle or pattern used if separation alone was insufficient (or none) - `resources_reused`: existing capabilities leveraged - `resolution`: concrete design decision and where each state holds - `residual_tradeoff`: none, or the honest remaining compromise ## Verification - **Template gate:** if the contradiction cannot be written in the required form, do not apply TRIZ. - **No-compromise check:** a pure midpoint on the trade-off curve without a separation or inventive move is a failed application. - **Separation-first:** principles without attempted time/space/condition/scale separation are incomplete. - **Over-application guard:** if measurement or a standard pattern settles the design, skip TRIZ. - **Stop:** one named contradiction → separation/inventive pass → concrete resolution; do not cycle principles as decoration.
© tjboudreaux · MIT · tjboudreaux/cc-thinking-skills