rethink-unblock
Break out of a stuck approach by reframing a technical problem through structured thinking frameworks. Use when blocked, going in circles, or when a fresh perspective is needed on architecture, design, or debugging.
Best use case
rethink-unblock is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Break out of a stuck approach by reframing a technical problem through structured thinking frameworks. Use when blocked, going in circles, or when a fresh perspective is needed on architecture, design, or debugging.
Teams using rethink-unblock should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/rethink-unblock/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How rethink-unblock Compares
| Feature / Agent | rethink-unblock | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Break out of a stuck approach by reframing a technical problem through structured thinking frameworks. Use when blocked, going in circles, or when a fresh perspective is needed on architecture, design, or debugging.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Rethink — Structured Reframing for Technical Problems
When you're stuck on a technical problem, apply two of the four frameworks below to generate alternative approaches. The goal is to break fixed thinking patterns and surface options you haven't considered.
## Triggers
Use this skill when:
- An approach has failed 2+ times
- You're going in circles on a design decision
- The "obvious" solution feels wrong or overly complex
- You need to evaluate fundamentally different architectures
- Debugging has stalled and root cause is unclear
## Process
### Step 1: State the Problem Clearly
Write one sentence describing what you're trying to achieve and what's blocking you.
```
Problem: [What I want to achieve]
Blocker: [What's preventing it]
Attempts so far: [What I've already tried]
```
### Step 2: Select Two Frameworks
Choose the two most relevant frameworks from below and apply them to the problem.
### Step 3: Generate Alternatives
Produce 3-5 concrete, actionable alternative approaches. Each must include:
- **Approach**: One-sentence description
- **Mechanism**: How it solves the blocker
- **Trade-off**: What you give up
- **First step**: The immediate next action to try
---
## Framework 1: Problem Redefinition (관점 전환)
Rotate the problem to see it from a different angle.
**Techniques:**
- **Invert** (180°): What if the opposite is the real problem? ("Can't make it fast" → "Why does it need to be fast?")
- **Zoom out** (10x): What problem does THIS problem live inside? Is there a higher-level solution?
- **Zoom in** (0.1x): Which specific sub-part is actually broken? Isolate the exact failure point.
- **Domain shift**: How would a different field solve this? (Database problem → think like a filesystem. UI problem → think like a CLI.)
- **Time shift**: How would this be solved if performance/storage/bandwidth were unlimited? What if it had to work on a 1990s machine?
**Output**: Restate the problem in at least two alternative formulations before generating solutions.
---
## Framework 2: Cross-Domain Connection (연결 탐색)
Find solutions by connecting to patterns from other domains.
**Process:**
1. **Direct analogy**: What existing system solves a structurally similar problem? (e.g., event sourcing ↔ git history, circuit breaker ↔ electrical fuse)
2. **Inverse pattern**: What's the opposite architectural pattern, and would it work here? (polling ↔ push, monolith ↔ microservice, eager ↔ lazy)
3. **Borrow from stdlib/ecosystem**: Is there a well-tested library or language feature that handles this class of problem? Don't reinvent.
4. **Prior art search**: Has this exact problem been solved in another project, language, or framework? Search before building.
**Output**: Name the analogous system/pattern and explain how the mapping works.
---
## Framework 3: Complexity Decomposition (복잡성 분해)
Break a complex problem into independently solvable parts.
**Process:**
1. **List components**: What are the 3-5 distinct sub-problems?
2. **Map dependencies**: Which parts depend on which? Draw the DAG.
3. **Find the leverage point**: Which single sub-problem, if solved, unblocks the most others?
4. **Isolate the hard part**: Separate the genuinely hard sub-problem from the boilerplate. Solve the hard part first in isolation.
5. **Sequence**: Determine the order — solve independent parts in parallel, dependent parts in sequence.
**Output**: A numbered list of sub-problems with their dependency relationships and a suggested solve order.
---
## Framework 4: Multi-Dimensional Analysis (다차원 분석)
Analyze the problem across multiple dimensions to find the real constraint.
**Dimensions to evaluate:**
- **Time**: Is this a build-time, deploy-time, or runtime problem? Can you shift when the work happens?
- **Layer**: Is the problem in the data model, business logic, API boundary, or presentation? Are you solving it at the right layer?
- **Scope**: Is this a local fix, a module-level redesign, or a system architecture issue? Are you at the right scope?
- **Constraint**: What's the actual bottleneck — correctness, performance, maintainability, or compatibility? Are you optimizing the right thing?
- **Lifecycle**: Is this a one-time migration, a growing problem, or a steady-state concern? Does the solution need to scale?
**Output**: Identify which dimension reveals the real constraint, and propose solutions that address that specific dimension.
---
## Output Format
```
## Rethink: [Problem Title]
**Problem**: [one sentence]
**Blocker**: [one sentence]
**Attempts**: [what was tried]
### Frameworks Applied: [Name 1] + [Name 2]
#### [Framework 1 Name] Analysis
[Framework-specific analysis, 3-5 sentences]
#### [Framework 2 Name] Analysis
[Framework-specific analysis, 3-5 sentences]
### Alternative Approaches
1. **[Approach name]**
- Mechanism: [how it solves the blocker]
- Trade-off: [what you give up]
- First step: [immediate next action]
2. **[Approach name]**
- Mechanism: ...
- Trade-off: ...
- First step: ...
3. **[Approach name]**
- Mechanism: ...
- Trade-off: ...
- First step: ...
### Recommendation
[Which approach to try first and why, 1-2 sentences]
```
## Anti-Patterns
- Generating vague or generic advice ("try a different approach") — every alternative must be concrete and actionable
- Analysis paralysis — limit to 3-5 alternatives, pick one, and try it
- Reframing without action — the output must include a "first step" for each alternative
- Using this skill as procrastination — if the problem is clear and the solution is obvious, just do itRelated Skills
worklog
Update worklog files by moving tasks between todo/doing/done states. Use when recording task progress, starting new work, or marking tasks complete. Requires explicit arguments: worklog [done|doing|todo] [description].
template-proposal-review
Review proposal files in localdocs/localdocs/proposals/ and decide whether to apply them to the upstream python-project-template repository. Use when evaluating proposals generated by template-upstream, deciding which ones to accept or reject, and applying accepted ones to the template repo. Triggers on: "proposal 검토", "제안 검토", "template에 반영할지", "proposals 리뷰", "upstream 반영 결정".
template-downstream
Update .claude/, .mcp.json, and .pre-commit-config.yaml from the upstream python-project-template repository into the current project. Only files that exist upstream are updated — project-only files are never deleted. Use when pulling latest tooling, rules, hooks, or skills from the canonical template into this project. Triggers on: "템플릿 최신화", "template sync", "upstream 반영", "template 업데이트".
template-broadcast
Apply template-downstream to all registered downstream projects in bulk, one project at a time. Use when you want to push the latest .claude/, .mcp.json, or .pre-commit-config.yaml to every project at once. Triggers on: "일괄 배포", "전체 프로젝트에 내려보내기", "모든 프로젝트 업데이트", "broadcast template", "bulk sync".
tdd
Test-Driven Development workflow. Use for ALL code changes - features, bug fixes, refactoring. TDD is non-negotiable.
sparks-create
Apply the 13 thinking tools from "Sparks of Genius" (생각의 탄생) to reframe any problem through creative, cross-disciplinary lenses. Use when conventional analysis falls short, when you need a fresh creative angle, or when the problem spans multiple domains.
skill-creator
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
refactoring
Refactoring assessment and patterns. Use after tests pass (GREEN phase) to assess improvement opportunities.
python-mcp-expert
Expert assistant for developing Model Context Protocol (MCP) servers in Python. Use when creating, debugging, or optimizing MCP servers with FastMCP, tools, resources, and prompts.
python-conventions
Python coding conventions and guidelines including PEP 8, type hints, docstrings, and testing standards. Automatically applied when working with Python files.
prd
Generate high-quality Product Requirements Documents (PRDs) for software systems and AI-powered features. Includes executive summaries, user stories, technical specifications, and risk analysis.
planning
Planning work in small, known-good increments. Use when starting significant work or breaking down complex tasks.