When two design requirements seem mutually exclusive, name the contradiction, separate conflicting states, then invent a concrete no-compromise resolution.
SkillScore96Maintained
On-demandOn-demand: invoked explicitly — never occupies your agent's context until called.
◆Coding pack
Last verified 8/14/2026
What it changes
Passed 24 of 25 test cases with the skill, and 18 of 25 without it.
Without skill72%
With skill96%
Checks it passed that the model alone missed
Tests separation by space or time in the separation tried field
Tests separation by space or condition in the separation tried field
Evaluates separation by scale or space in the separation tried field
and 2 more in the full report
6 fixed18 passed either way1 still failing0 broke
Pass-rate lift
+24 pp
Tokens
-24%
Agent turns
0%
Response time
-46%
Model gemini-3.6-flashMeasured 8/14/2026v124 of 25 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 6 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 6
Prompt
The backend lead wants to write the new auth service in Rust for memory safety, while the frontend lead wants Node.js because the team knows JavaScript. How can TRIZ solve this interpersonal team disagreement?
What was checked, without and with the skill
Checked
Without skill
With skill
States that organizational or interpersonal team conflicts are outside the scope of technical TRIZ analysis
Missed
Passed
case-06 · gemini-3.6-flash · 8/14/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md46 linessingle file
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
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.
State the ideal final result (IFR). Describe both benefits held with minimal new machinery and no permanent midpoint sacrifice.
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.
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.
Reuse existing resources first. Before adding services or stores, check data, traffic, headers, schedulers, and side effects already present that can carry the separation.
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.