← 文档库
📄 文档.trae/skills/preserving-productive-tensions/SKILL.md
🌱 创建于2026-05-29 01:04
✏️ 修改于2026-05-29 01:04
👁️ 浏览量—
🔗 短链接/~learn/s/f7801fb7
🔐 可见性

--- name: Preserving Productive Tensions description: Recognize when disagreements reveal valuable context, preserve multiple valid approaches instead of forcing premature resolution when_to_use: when oscillating between equally valid approaches that optimize for different legitimate priorities version: 1.1.0 ---

Preserving Productive Tensions

Overview

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.

Recognizing Productive Tensions

A tension is productive when:

A tension needs resolution when:

Preservation Patterns

Pattern 1: Configuration

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

Pattern 2: Parallel Implementations

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

Pattern 3: Documented Trade-off

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

Red Flags - You're Forcing Resolution

All of these mean: STOP. Consider preserving the tension.

When to Force Resolution

You SHOULD force resolution when:

- Building/maintaining both would slow development significantly - Team doesn't have bandwidth for parallel approaches

- Approaches make contradictory architectural assumptions - Can't cleanly separate concerns

- One approach is objectively better for this specific context - Not "I prefer X" but "X solves our constraints, Y doesn't"

- Choice locks us into an architecture - Migration between options would be expensive

- Preserving both genuinely adds complexity - YAGNI: Don't build both if we only need one

Ask explicitly: "Should I pick one, or preserve both as options?"

Documentation Format

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]

Examples

Productive Tension (Preserve)

"Should we optimize for cost or latency?"

Technical Decision (Resolve)

"Should we use SSE or WebSockets?"

Business Decision (Defer)

"Should we support offline mode?"

Remember

▶ 📜 变更历史(1 次提交)

925d51b2026-05-29 01:04feat: 数据抓取报错复盘;守护进程推送数据;skill保存
🍃quant 知识库
by 伊甸园和枫

🔊 播放设置

勾选音源后调节配比,总和自动归一化
已选 0 个 · 合计:0%
合成中...
00:00/00:00
1.0x

分享图片

生成中...