triz-solver
Skill15 starsChanged 5 months agoMITView on GitHub
Systematic problem-solving using TRIZ (Theory of Inventive Problem Solving) principles adapted for software engineering. Use when stuck on complex problems, facing technical contradictions, optimizing system design, or seeking innovative solutions beyond trial-and-error. Prevents solving the wrong problem correctly.
2 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- d-o-hub/github-template-ai-agentsedited, first seen Nov 3, 2026
- dawid-ai/SKILLStheir own version, first seen Feb 4, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- d-o-hub/github-template-ai-agents★ 239% same
Wrote their own version · 1
- dawid-ai/SKILLS★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository29 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- llms-full.txtllms.txt
- llms.txtllms.txt
- anti-ai-slopSkill
- architecture-diagramSkill
- atomic-commitSkill
- build-rustSkill
- codacySkill
- crates-io-name-checkSkill
- dora-reportSkill
- goap-agentSkill
- harnessSkill
- issue-triageSkill
- lint-rustSkill
- metrics-reporterSkill
- privacy-firstSkill
- release-rustSkill
- reviewing-pull-requestsSkill
- secret-lintSkill
- self-fix-loopSkill
- skill-creatorSkill
- skill-evaluatorSkill
- stacked-prsSkill
- task-decompositionSkill
- test-rustSkill
- tokio-performanceSkill
- triz-analysisSkill
- verify-actionsSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 4 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 115
System-level: Add component that resolves both
- Distinctive: line 187
task-decomposition: Use TRIZ to identify contradictions before decomposing
- Distinctive: line 189
iterative-refinement: Use contradiction analysis to guide refinement cycles
- Distinctive: line 198
No new contradictions introduced
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
TRIZ Problem Solver — Rust Edition
Systematic innovation methodology for Rust engineering problems.
Core Protocol
Contradiction-First Approach
1. STATE the problem in one sentence
2. IDENTIFY contradiction: "Improving [X] causes [Y] to worsen"
3. CHECK if contradiction is real or apparent
4. RESOLVE using separation principles
5. VALIDATE no new contradictions introducedIdeal Final Result (IFR)
"The ideal Rust solution delivers all benefits with zero cost, zero unsafe, zero clones"
1. What is the ideal outcome? (no implementation details)
2. What prevents reaching it? (Rust constraints: ownership, lifetimes, traits)
3. Which constraints are real vs assumed?
4. Can the type system enforce correctness without runtime checks?Inventive Principles (Software Edition)
Principles Applied to Rust
| # | Principle | Rust Analogy | When to Apply |
| 1 | Segmentation | Split crate, module, function | Monolithic code, complex functions |
| 2 | Taking out | Extract trait, separate mod | Mixed responsibilities in one type |
| 3 | Local quality | Domain-specific types (Url, UserId) | Generic String everywhere |
| 4 | Asymmetry | Feature-gated impls, sealed traits | One-size-fits-all antipattern |
| 5 | Merging | Batch operations, reduce round-trips | Excessive function calls, I/O |
| 6 | Universality | Shared trait, polymorphism | Duplicate implementations |
| 7 | Nesting | Cow, lifetime hierarchies | Flat complex types |
| 9 | Intermediary | Insert an adapter, cache, or queue between two components | Two systems must change in lockstep |
| 12 | Inversion | Pull-based deps, IoC, callbacks | Current push approach failing |
| 13 | Dynamics | Runtime config, feature flags, hot-reload | Static rigid configurations |
| 15 | Feedback | Telemetry, regression test, sensor-driven gate | No way to tell whether a change helped |
| 17 | Another dimension | Add newtype, wrapper, sidecar, index | Impasse at current abstraction level |
| 35 | Parameter change | Retune batch size, shard count, lock width | Algorithm is sound; the tunable is wrong |
This table is the complete set the contradiction matrix below draws from. A resolution citing a number absent from this table has not applied a principle.
Contradiction Matrix (Software)
Improving vs Worsening → Principle
──────────────────────────────────────────────────────────────
Functionality vs Complexity → #1, #9, #15
Performance vs Maintainability → #7, #13, #17
Flexibility vs Simplicity → #6, #2, #3
Security vs Usability → #12, #4, #17
Scalability vs Resource Cost → #1, #13, #35Rust-Specific Additions
Compile time vs Runtime perf → #13, #35
API ergonomics vs Binary size → #1, #15
Async surface vs Blocking cost → #1, #15
Genericity vs Compile time → #2, #6Decision Workflow
Step 1: Frame Problem
Problem: [One sentence]
Current approach: [What you're doing]
Stuck because: [Why it doesn't work]
Rust constraints hit: [Ownership / Lifetime / Trait bounds / Async / Unsafe]Step 2: Identify Contradiction
Improving: [Parameter that needs improvement]
Worsens: [Parameter that degrades]
Type: [Technical / Physical / Inherent]
Rust-specific: [Is the borrow checker the bottleneck?]Step 3: Apply Resolution
Choose separation strategy:
- Time: Different behavior at different stages
- Rust:
OnceCell,Phasedinit, staged builder
- Rust:
- Space: Different behavior in different contexts
- Rust: feature flags,
#[cfg],target_arch
- Rust: feature flags,
- Condition: Different behavior based on input type
- Rust: trait objects, sealed traits,
match
- Rust: trait objects, sealed traits,
- System-level: Add component that resolves both
- Rust: newtype wrapper, sidecar crate, separate binary
Step 4: Validate
✓ Original problem solved
✓ No new contradictions introduced
✓ Solution approaches IFR (minimal complexity added)
✓ `cargo clippy --workspace --all-targets --all-features -- -D warnings` passes
✓ `cargo nextest run --workspace` passes
✓ No `unsafe` without `// SAFETY:` rationaleExamples
Example 1: Compile Time vs Runtime Performance
Problem: Heavy generics in core crate cause slow dev builds
Contradiction: Genericity (improve) vs Compile time (worsen)
Apply: #2 Taking out → Extract hot-loop into runtime-dispatched `dyn Trait` crate
Result: Core crate compiles fast, hot loop dispatched at runtimeExample 2: API Ergonomics vs Binary Size
Problem: Convenience methods bloat the binary
Contradiction: API ergonomics (improve) vs Binary size (worsen)
Apply: #1 Segmentation → Feature-gate convenience methods, default off
Result: Users opt in to convenience, base binary stays smallExample 3: Async Surface vs Blocking Cost
Problem: Exposing async requires every caller to .await
Contradiction: Async surface (improve) vs Blocking cost (worsen)
Apply: #12 Inversion → Provide blocking wrapper that calls `tokio::runtime::Handle::block_on`
Result: Both sync and async callers servedExample 4: Security vs Usability (Auth)
Problem: Strong auth improves security but hurts UX
Contradiction: Security (improve) vs Usability (worsen)
Apply: #12 Inversion → Risk-based auth (challenge only suspicious sessions)
Result: Both sync and async callers servedExample 5: Agent Instruction Optimization
Problem: More instructions improve reliability but consume context
Contradiction: Completeness (improve) vs Token limits (worsen)
Apply: #4 Asymmetry → Heavy knowledge in `references/`, load lazily
Result: Reliability maintained, context efficiency improvedExample 6: Lifetime vs Extensibility
Problem: Adding a borrow makes the trait less flexible for downstream impls
Contradiction: Borrow safety (improve) vs Extensibility (worsen)
Apply: #7 Nesting → Use `Cow<'_, T>` or lifetime-generic type parameter
Result: Borrow enforced where needed, flexible where notIntegration with Other Skills
- task-decomposition: Use TRIZ to identify contradictions before decomposing
- agent-coordination: Apply IFR to coordination strategy selection
- iterative-refinement: Use contradiction analysis to guide refinement cycles
- triz-analysis: Audit first, then solve
- anti-ai-slop: Validate the TRIZ solution isn't boilerplate-heavy
Quality Checklist
- Contradiction explicitly stated before solution
- IFR defined before implementation
- Solution verified against contradiction matrix
- No new contradictions introduced
- Approaches ideal state (minimal added complexity, idiomatic Rust)
cargo clippyandcargo nextestpass
Rationalizations
| Rationalization | Reality |
| "I already know the solution, no need for TRIZ analysis" | Skipping contradiction analysis often means solving the wrong problem correctly, wasting implementation effort. |
| "This is just a minor tweak, not a real problem" | Minor tweaks can introduce new contradictions; validate that no new trade-offs are created. |
"Just add unsafe to bypass the borrow checker" | unsafe is the cost; TRIZ avoids paying it. Re-examine the design first. |
Red Flags
- Proposing a solution without explicitly stating the contradiction first
- Skipping IFR definition and jumping to implementation details
- Introducing new contradictions without validating the solution
- Using
unsafeto bypass the borrow checker instead of redesigning - Adding
unwrap(),clone(), orBox<dyn Trait>as the first solution
Reference Files
Related Skills
triz-analysis- Audit first, then solvetask-decomposition- Break complex problems into sub-tasksgoap-agent- Use TRIZ in Phase 1 (Analyze) of GOAPanti-ai-slop- Audit rewritten code for boilerplate
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

