🧪 Skills

Parallax

Views every decision from five simultaneous stakeholder perspectives — the user who touches it, the developer who maintains it, the operator who deploys it,...

v1.0.0
❤️ 0
⬇️ 104
👁 2
Share

Description


name: parallax version: 1.0.0 description: > Views every decision from five simultaneous stakeholder perspectives — the user who touches it, the developer who maintains it, the operator who deploys it, the attacker who probes it, and the business that funds it. Reveals the blind spots that single-perspective thinking guarantees. author: J. DeVere Cooley category: decision-intelligence tags:

  • multi-perspective
  • decision-making
  • architecture
  • stakeholder-analysis metadata: openclaw: emoji: "🔭" os: ["darwin", "linux", "win32"] cost: free requires_api: false tags:
    • zero-dependency
    • cognitive
    • architecture

Parallax

"In astronomy, parallax is the apparent shift of an object when viewed from two different positions. The shift reveals depth. Without it, the universe is flat."

What It Does

Parallax forces every significant decision through five simultaneous perspectives before a single line of code is written. Not as a checklist. Not as an afterthought. As the primary mode of reasoning.

Most architectural mistakes aren't wrong from every angle. They're wrong from the angle nobody was standing at.

The Five Parallax Lenses

Lens Persona Core Question Failure Mode When Ignored
User The person touching the interface "Does this feel right?" Feature nobody uses despite being technically sound
Maintainer The developer reading this code in 6 months "Can I understand and change this?" Code that works but can't evolve
Operator The engineer deploying and monitoring this "Can I run this at 3am when it breaks?" System that works in dev, nightmare in prod
Adversary The attacker probing for weaknesses "Where does this trust too much?" Vulnerability hiding in a convenient assumption
Sponsor The business funding this work "Does this create or capture value?" Technical excellence that generates zero revenue

How Each Lens Works

Lens 1: The User

The User lens doesn't ask "is the UX good?" — it asks "what story does this interface tell?"

ANALYSIS AXES:
├── Cognitive Load: How many things must the user hold in mind?
├── Error Recovery: When (not if) they make a mistake, what happens?
├── Trust Signal: Does this interaction build or erode confidence?
├── Time Respect: Does this value the user's time or waste it?
└── Accessibility: Can someone with different abilities use this equally?

What it catches: Features that are powerful but unusable. Flows that make sense to the developer but confuse the user. Efficiency optimizations that sacrifice clarity.

Lens 2: The Maintainer

The Maintainer lens asks "what will confuse the next person who reads this?"

ANALYSIS AXES:
├── Naming Clarity: Do names describe actual behavior?
├── Abstraction Depth: How many layers deep must you go to understand?
├── Change Locality: To change this behavior, how many files do you touch?
├── Test Confidence: If I modify this, will the tests tell me if I broke something?
└── Knowledge Required: What unwritten context is needed to work here?

What it catches: Clever code that requires tribal knowledge. Abstractions that obscure rather than clarify. Designs that are optimal for writing but hostile to reading.

Lens 3: The Operator

The Operator lens asks "what happens when this fails at 3am on a holiday weekend?"

ANALYSIS AXES:
├── Observability: Can I see what's happening without reading source code?
├── Failure Modes: Does it fail loudly, quietly, or in a way that looks like success?
├── Recovery Path: Can I fix it without a deploy?
├── Blast Radius: If this fails, what else fails?
└── Resource Behavior: Does it degrade gracefully or cliff-edge?

What it catches: Systems with no logging. Failures that cascade silently. Recovery paths that require the original developer. Memory leaks that only manifest under production load.

Lens 4: The Adversary

The Adversary lens asks "where does this assume good faith?"

ANALYSIS AXES:
├── Trust Boundaries: Where does external input enter?
├── Assumption Surface: What would break if I lied to this system?
├── Privilege Scope: Does this have more access than it needs?
├── Information Leakage: What does the error message reveal?
└── Timing Attacks: Can I learn secrets from how long things take?

What it catches: Input that's validated for format but not intent. Error messages that reveal internal architecture. APIs that trust client-side state. Rate limits that don't exist.

Lens 5: The Sponsor

The Sponsor lens asks "does this advance the mission or just feel productive?"

ANALYSIS AXES:
├── Value Delivery: Does this solve a problem someone will pay for?
├── Opportunity Cost: What are we NOT building while we build this?
├── Time to Value: How long until this generates measurable impact?
├── Reversibility: If this is wrong, how expensive is the course correction?
└── Leverage: Does this multiply future capability or just add linearly?

What it catches: Over-engineered solutions to low-value problems. Refactors that improve code quality but delay features. Infrastructure investments with unclear ROI.

The Parallax Process

INPUT: A proposed change, feature, or architectural decision

STEP 1: SINGLE-PERSPECTIVE PASS
├── Generate the default analysis (whatever perspective comes naturally)
└── Document: which lens did you instinctively use?

STEP 2: FULL PARALLAX
├── Run the remaining four lenses
├── For each lens, generate:
│   ├── Top concern from this perspective
│   ├── Blind spot this lens reveals
│   └── Modification this perspective demands
└── Flag conflicts between lenses

STEP 3: TRIANGULATION
├── Identify where 3+ lenses agree (high confidence)
├── Identify where lenses conflict (design tension)
├── For each conflict:
│   ├── Which lens has priority given the current project phase?
│   ├── Can the tension be resolved or must it be managed?
│   └── What's the least-bad tradeoff?
└── Produce final recommendation with explicit tradeoff map

OUTPUT: Decision with full perspective coverage and documented tradeoffs

Conflict Resolution Matrix

When lenses disagree, priority depends on project phase:

Phase Primary Lens Secondary Rationale
Prototype Sponsor → User Maintainer Validate value before investing in quality
MVP User → Sponsor Adversary Ship something real, don't ship something dangerous
Growth Operator → Adversary Maintainer Scale without breaking or being broken into
Maturity Maintainer → Operator User Long-term sustainability over short-term features
Turnaround Sponsor → User Operator Re-find product-market fit, fast

Output Format

╔══════════════════════════════════════════════════════════════╗
║                    PARALLAX ANALYSIS                        ║
║         Decision: "Add caching layer to user API"           ║
╠══════════════════════════════════════════════════════════════╣
║                                                              ║
║  👤 USER:       Faster responses (+). Stale data risk (-).   ║
║                 → Ensure cache invalidation is immediate     ║
║                   for profile changes.                       ║
║                                                              ║
║  🔧 MAINTAINER: New complexity layer (-). Clear boundary (+) ║
║                 → Cache must be a swappable interface,       ║
║                   not hardcoded to Redis.                    ║
║                                                              ║
║  📟 OPERATOR:   Reduces DB load (+). New failure point (-).  ║
║                 → Need cache hit/miss metrics and            ║
║                   graceful fallback to direct DB.            ║
║                                                              ║
║  🗡️ ADVERSARY:  Cache poisoning vector (-). Rate limit       ║
║                 bypass via cache (-).                        ║
║                 → Cache keys must not be user-controllable.  ║
║                                                              ║
║  💼 SPONSOR:    Reduces infra cost (+). Delays feature X (-) ║
║                 → Worth it only if current p95 latency is    ║
║                   actually causing churn.                    ║
║                                                              ║
║  CONFLICTS:                                                  ║
║  ├── User (freshness) vs Operator (DB load) → TTL tradeoff  ║
║  └── Sponsor (cost) vs Maintainer (complexity) → Phase check ║
║                                                              ║
║  RECOMMENDATION: Proceed with 60s TTL, swappable interface,  ║
║  cache metrics dashboard, and cache-poisoning guards.        ║
║  Defer if p95 latency is under 200ms.                        ║
╚══════════════════════════════════════════════════════════════╝

When to Invoke

  • Before any architectural decision that will be expensive to reverse
  • During design reviews and RFC discussions
  • When a decision "feels right" but you can't articulate why (you're stuck in one lens)
  • When stakeholders disagree (they're each looking through a different lens)
  • Before adding any new dependency, service, or abstraction layer

Why It Matters

The #1 cause of architectural regret isn't choosing the wrong solution. It's choosing a solution that's optimal from one perspective while being catastrophic from another perspective nobody considered.

Parallax doesn't make decisions for you. It makes sure you're making decisions with depth perception.

Zero external dependencies. Zero API calls. Pure multi-perspective reasoning.

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs