The agent’s TRIZ library.
Search contradiction definitions, 40 inventive principles, and 6 physical resolution routes adapted for software development. Use the library to frame a coding problem and develop a strategy you can test.
Catalog: triz-software-2. Software heuristics are adaptations, not a complete classical contradiction matrix or automatic prescriptions.
Definitions
- TRIZ
The theory of inventive problem solving: a systematic methodology developed from recurring patterns in inventions and patent literature.
- Technical contradiction
Improving one property of a system worsens another property.
- Physical contradiction
The same element must have opposing properties to satisfy different requirements.
- Evidence-grounded analysis
A classification should cite evidence supplied in the request, rather than invent observations.
- Uncertainty and insufficient evidence
Uncertain classification and insufficient problem descriptions require clarification before implementation.
Inventive principles
- 1. segmentation
Split the conflicting system, responsibility, data, or workflow into independently changeable parts so each can be optimized without forcing the same trade-off on the whole.
- 2. extraction
Extract or isolate the component, responsibility, data, behavior, or dependency causing the harmful effect, or retain only the part actually required.
- 3. local quality
Replace uniform treatment with locally specialized structure, behavior, configuration, or policy so each part operates under conditions suited to its role.
- 4. asymmetry
Break unnecessary symmetry: allow different components, replicas, paths, users, or states to have different roles or policies when identical treatment creates the conflict.
- 5. consolidation
Combine compatible components, resources, requests, or operations in space or time when duplication, separation, or coordination overhead creates the conflict.
- 6. universality
Let one component or abstraction perform several compatible functions so redundant components, interfaces, dependencies, or transformations can be removed.
- 7. nesting
Compose components, scopes, containers, or abstractions hierarchically so one can contain, encapsulate, or pass through another.
- 8. counterweight
Offset load, latency, cost, risk, or resource pressure with a compensating mechanism rather than strengthening the constrained mechanism directly.
- 9. prior counteraction
Apply a compensating or protective action before an expected harmful effect occurs so the later effect is neutralized when it arrives.
- 10. preliminary action
Precompute, preload, prefetch, preconfigure, validate, reserve, or position what will be needed before the latency-sensitive or failure-sensitive path begins.
- 11. cushion in advance
Prepare redundancy, rollback, fallback, reserve capacity, circuit breaking, recovery data, or other emergency protection before a failure occurs.
- 12. equipotentiality
Equalize states, representations, interfaces, privileges, or operating levels so useful work no longer requires repeated expensive transitions between them.
- 13. do it in reverse
Reverse direction, responsibility, dependency, ownership, control flow, or operation; make the active side passive or the fixed side movable when the conventional direction creates the conflict.
- 14. spheroidality
Replace unnecessarily linear structures or flows with cyclic, ring, rotational, curved, or recursive organization when linearity creates the constraint.
- 15. dynamicity
Make components, parameters, policies, capacity, topology, or bindings adjustable and reconfigurable so behavior can change with operating conditions.
- 16. partial or excessive action
When the exact target is expensive or difficult to achieve directly, deliberately under-shoot or over-shoot it and handle the smaller remaining difference separately.
- 17. transition into a new dimension
Add an axis, layer, hierarchy, partition, channel, dimension, or level of indirection to escape a constraint imposed by the current representation.
- 18. mechanical vibration
Replace static behavior with controlled oscillation, pulsing, polling, heartbeats, resonance, or higher-frequency interaction when periodic variation exposes a better operating regime.
- 19. periodic action
Replace continuous work with periodic, event-driven, scheduled, sampled, or batched action; tune the cadence and use the gaps for other useful work.
- 20. continuity of useful action
Keep useful work flowing and minimize idle or intermediate stages through streaming, pipelining, concurrency, background processing, or reuse of otherwise idle capacity.
- 21. rushing through
Perform an unavoidable harmful, inconsistent, blocked, or risky transitional state quickly so the system spends the minimum possible time exposed to it.
- 22. convert harm into benefit
Turn a harmful factor, waste product, failure mode, contention signal, or rejected result into a useful resource or signal; combine harmful effects when doing so can neutralize them.
- 23. feedback
Observe the actual outcome and feed it back into control decisions so behavior adapts instead of accepting the trade-off; change the feedback loop when the existing one is ineffective or unstable.
- 24. intermediary
Insert a mediator, proxy, adapter, broker, queue, cache, buffer, gateway, or temporary abstraction between conflicting parties.
- 25. self-service
Make a component observe, maintain, heal, configure, replenish, or clean up itself, and reuse otherwise wasted outputs or resources where practical.
- 26. copying
Operate on a replica, cache, snapshot, proxy, model, simulation, projection, or transformed representation when operating on the original is expensive, dangerous, unavailable, or disruptive.
- 27. dispose
Replace an expensive long-lived element with inexpensive disposable or ephemeral instances when durability, lifecycle, or cleanup guarantees create unnecessary complexity.
- 28. replacement of mechanical system
Replace direct or tightly coupled interaction with signals, metadata, events, sensing, declarative rules, virtualization, or another more controllable interaction mechanism.
- 29. pneumatic or hydraulic constructions
Replace rigidly provisioned capacity with elastic or flow-based mechanisms such as queues, streams, pools, buffers, backpressure, or dynamically allocated resources.
- 30. flexible membranes or thin films
Use a lightweight flexible boundary such as a wrapper, facade, policy layer, filter, interceptor, or virtual boundary instead of rigid structural separation.
- 31. porous material
Make a boundary selectively permeable using controlled openings, filters, extension points, plugins, admission rules, sampling, or pre-established channels.
- 32. changing the color
Change representation, labeling, visibility, transparency, telemetry, or observability so otherwise hidden state, differences, or behavior become distinguishable.
- 33. homogeneity
Make interacting elements use the same or closely compatible representation, protocol, abstraction, runtime, or substrate to reduce conversion and mismatch costs.
- 34. rejecting and regenerating parts
Expire, discard, release, recycle, or transform elements after their useful function is complete, and regenerate or restore them when they become necessary again.
- 35. transformation of properties
Resolve the conflict by changing state, configuration, granularity, consistency, concentration, flexibility, precision, capacity, or another governing parameter rather than redesigning the whole system.
- 36. phase transition
Move the element into a qualitatively different operating state, mode, representation, or lifecycle phase whose properties remove the original conflict.
- 37. thermal expansion
Use controlled expansion or contraction of capacity, scope, buffering, replication, or resource allocation in response to changing operating conditions.
- 38. accelerated oxidation
Increase the strength or activation level of an enabling mechanism stepwise—such as validation, enforcement, isolation, replication, or signal intensity—when a weaker interaction requires compensating complexity.
- 39. inert environment
Run the interaction in an isolated, neutralized, sandboxed, side-effect-free, simulated, or otherwise controlled environment so harmful interactions cannot propagate.
- 40. composite materials
Combine heterogeneous components, representations, storage models, algorithms, or execution strategies so the composite provides properties that a uniform design cannot.
Physical routes
- separation in space
Let each opposing requirement hold in a different component, node, region, layer, partition, namespace, or architectural location.
- separation in time
Let each opposing requirement hold at a different time, phase, transaction stage, deployment window, operating mode, or lifecycle state.
- separation in relation (condition/context)
Let the same element satisfy opposite properties for different users, requests, tenants, relationships, contexts, modes, workloads, or other operating conditions.
- separation in system level
Place one required property at the whole-system or supersystem level and the opposing property at a subsystem, component, instance, or lower abstraction level.
- satisfying contradictory demands
Change state, representation, protocol, parameters, or mechanism so both opposing requirements can hold simultaneously rather than being separated.
- bypassing contradictory demands
Redesign the workflow, interaction, architecture, or system boundary so the conflicted parameter or requirement becomes irrelevant instead of being optimized.