Horizon Thinking

Horizon Thinking

AI thinks vertically. You provide the horizontal.

The Core Visual

                              YOU
                               β”‚
         ◄─────────────────────┼─────────────────────►  HORIZONTAL
                               β”‚                        (Your Context)
         Patterns              β”‚              Constraints
         History               β”‚              Integrations
         Domain Knowledge      β”‚              Future Plans
                               β”‚
                               β”‚
                              ─┼─
                               β”‚
                               β”‚  AI
                               β”‚
                               β–Ό  VERTICAL
                                  (AI Implementation)

AI can only move vertically β€” straight down from prompt to implementation.

You control the horizontal β€” where on the landscape the AI aims.


The Two Dimensions

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                                        β”‚
β”‚   HORIZONTAL (You)                    VERTICAL (AI)                    β”‚
β”‚   ════════════════                    ═════════════                    β”‚
β”‚                                                                        β”‚
β”‚   ← Past ──────────── Present ──────────── Future β†’                    β”‚
β”‚                           β”‚                                            β”‚
β”‚   β€’ Why things exist      β”‚      β€’ "Build this feature"                β”‚
β”‚   β€’ What patterns to use  β”‚              β”‚                             β”‚
β”‚   β€’ What constraints      β”‚              β–Ό                             β”‚
β”‚   β€’ What integrations     β”‚      β€’ Top-to-bottom                       β”‚
β”‚   β€’ Domain knowledge      β”‚        implementation                      β”‚
β”‚   β€’ Business rules        β”‚              β”‚                             β”‚
β”‚                           β”‚              β–Ό                             β”‚
β”‚                           β”‚      β€’ Working code                        β”‚
β”‚                                                                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Without vs. With Horizontal Context

❌ WITHOUT YOUR HORIZONTAL CONTEXT
══════════════════════════════════

        "Add login"
             β”‚
             β”‚  AI implements straight down
             β”‚  from the only point it knows
             β–Ό
      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
      β”‚ Basic login β”‚  ← Generic, doesn't fit your system
      β”‚ (generic)   β”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜


βœ… WITH YOUR HORIZONTAL CONTEXT  
═══════════════════════════════

   JWT ───── SSO ───── Rate Limit ───── Audit ───── GDPR
                           β”‚
                           β”‚  "Add login with JWT,
                           β”‚   integrate SSO, rate limit,
                           β”‚   log to audit system"
                           β”‚
                           β–Ό
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚ Perfect fit β”‚  ← Integrates with your system
                    β”‚ for YOUR    β”‚
                    β”‚ system      β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The Intersection

                    YOUR HORIZONTAL CONTEXT
                    
    Patterns    Constraints    Integrations    History
        β”‚            β”‚              β”‚             β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
    ════════════════════════β•ͺ════════════════════════════
                            β”‚
                            β”‚ ← THE INTERSECTION
                            β”‚    Your context + AI's power
                            β”‚    = Correct implementation
                            β”‚
                            β–Ό
                            
                    AI'S VERTICAL POWER
                    
                    "I can build anything
                     top-to-bottom...
                     
                     ...but only from the
                     point YOU place me."

The Formula

Horizontal Context (what you provide) Γ— Vertical Power (what AI does) = Correct Output

Missing horizontal = AI builds in the wrong place.

QUALITY OF OUTPUT = HORIZONTAL CONTEXT Γ— VERTICAL EXECUTION

   Your Context:     10%  ──►  AI builds generic code (wrong patterns)
   Your Context:     50%  ──►  AI builds decent code (some integration)
   Your Context:     90%  ──►  AI builds perfect fit (your system exactly)

What Goes on Each Axis

HORIZONTAL (You Provide)VERTICAL (AI Executes)
Existing systems to integrateFeature implementation
Patterns to followFunction logic
Constraints (no new deps, bundle size)Error handling
History (why things are this way)API design
Future plans (multi-tenancy later)Database queries
Domain knowledgeTesting
Business rulesDocumentation

The Horizon Checklist

Before every prompt, expand the horizontal:

β–‘ INTEGRATIONS   "This connects to [existing system]"
β–‘ PATTERNS       "Follow the pattern in [file]"
β–‘ CONSTRAINTS    "Cannot use [limitation]"
β–‘ HISTORY        "We use X because [reason]"
β–‘ FUTURE         "Must support [planned feature] later"
β–‘ DOMAIN         "Users typically [behavior]"
β–‘ ENVIRONMENT    "In prod we use [difference]"

Example: Email Feature

❌ Narrow Horizontal (Bad)

Prompt: "Add a function to send notification emails"

         β”‚
         β–Ό
    Generic nodemailer
    Hardcoded addresses
    No templates
    No rate limiting
    No GDPR compliance

βœ… Wide Horizontal (Good)

Horizontal context you provide:
β”œβ”€β”€ SendGrid (configured in /src/lib/email.ts)
β”œβ”€β”€ Template system in /src/templates  
β”œβ”€β”€ env.EMAIL_FROM for addresses
β”œβ”€β”€ GDPR: must include unsubscribe
β”œβ”€β”€ Rate limit: 10/user/hour
└── Follow sendWelcomeEmail() pattern

         β”‚
         β–Ό
    Uses SendGrid
    Uses your templates
    Respects rate limits
    GDPR compliant
    Matches your patterns

When Output is Wrong

Ask: "What horizontal context did I miss?"

Wrong output?
     β”‚
     β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  AI isn't broken.               β”‚
β”‚  Your horizontal was incomplete.β”‚
β”‚                                 β”‚
β”‚  What did AI NOT know?          β”‚
β”‚  β€’ Existing service?            β”‚
β”‚  β€’ Pattern to follow?           β”‚
β”‚  β€’ Constraint?                  β”‚
β”‚  β€’ Integration?                 β”‚
β”‚  β€’ Business rule?               β”‚
β”‚                                 β”‚
β”‚  Add it. Try again.             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Takeaways

⚠️

The AI is never "wrong" β€” it's building from where you placed it.

Bad output = you aimed the vertical power at the wrong horizontal point.

  1. AI = Vertical β€” Implements straight down, powerfully
  2. You = Horizontal β€” Position where the AI aims
  3. Intersection = Output β€” Quality depends on your context
  4. Wrong output? β€” Widen your horizontal, not blame the vertical

"AI can drill to any depth. You choose where to drill."