Interactive idea refinement using Socratic method to develop fully-formed designs
The English summary is being prepared. Showing the original description.
Recognize when disagreements reveal valuable context, preserve multiple valid approaches instead of forcing premature resolution
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Some tensions aren't problems to solve - they're valuable information to preserve. When multiple approaches are genuinely valid in different contexts, forcing a choice destroys flexibility.
Core principle: Preserve tensions that reveal context-dependence. Force resolution only when necessary.
A tension is productive when:
A tension needs resolution when:
Make the choice configurable rather than baked into architecture:
class Config:
mode: Literal["optimize_cost", "optimize_latency"]
# Each mode gets clean, simple implementation
When to use: Both approaches are architecturally compatible, switching is runtime decision
Maintain both as separate clean modules with shared contract:
# processor/batch.py - optimizes for cost
# processor/stream.py - optimizes for latency
# Both implement: def process(data) -> Result
When to use: Approaches diverge significantly, but share same interface
Capture the tension explicitly in documentation/decision records:
## Unresolved Tension: Authentication Strategy
**Option A: JWT** - Stateless, scales easily, but token revocation is hard
**Option B: Sessions** - Easy revocation, but requires shared state
**Why unresolved:** Different deployments need different trade-offs
**Decision deferred to:** Deployment configuration
**Review trigger:** If 80% of deployments choose one option
When to use: Can't preserve both in code, but need to document the choice was deliberate
All of these mean: STOP. Consider preserving the tension.
You SHOULD force resolution when:
Implementation cost is prohibitive
Fundamental conflict
Clear technical superiority
One-way door
Simplicity requires choice
Ask explicitly: "Should I pick one, or preserve both as options?"
When preserving tensions, document clearly:
## Tension: [Name]
**Context:** [Why this tension exists]
**Option A:** [Approach]
- Optimizes for: [Priority]
- Trade-off: [Cost]
- Best when: [Context]
**Option B:** [Approach]
- Optimizes for: [Different priority]
- Trade-off: [Different cost]
- Best when: [Different context]
**Preservation strategy:** [Configuration/Parallel/Documented]
**Resolution trigger:** [Conditions that would force choosing one]
"Should we optimize for cost or latency?"
"Should we use SSE or WebSockets?"
"Should we support offline mode?"
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Interactive idea refinement using Socratic method to develop fully-formed designs
The English summary is being prepared. Showing the original description.
Receive and act on code review feedback with technical rigor, not performative agreement or blind implementation
The English summary is being prepared. Showing the original description.
Force unrelated concepts together to discover emergent properties - "What if we treated X like Y?"
The English summary is being prepared. Showing the original description.
Replace arbitrary timeouts with condition polling for reliable async tests
The English summary is being prepared. Showing the original description.
Validate at every layer data passes through to make bugs impossible
The English summary is being prepared. Showing the original description.
Use multiple Claude agents to investigate and fix independent problems concurrently
The English summary is being prepared. Showing the original description.