<metadata>
purpose: The mindset shift to adopt agent's perspective in agentic coding
type: cognitive-framework
domain: agentic-coding
category: mindset
audience: LLM-optimized
last-updated: 2025-09-30
</metadata>

<overview>
The Agent Perspective Mindset is the foundational cognitive shift required for effective agentic coding. It transforms how developers think about communication, task decomposition, and orchestration. Developers must internalize that agents are brilliant but blind, powerful but contextless, capable but constrained by information provision.
</overview>

<core-principle>
<name>Your Agent is Brilliant But Blind</name>

<capabilities>
  <capability>Vast knowledge across programming languages, frameworks, algorithms</capability>
  <capability>Pattern recognition from millions of code examples</capability>
  <capability>Logical reasoning and problem decomposition</capability>
  <capability>Tool execution (file operations, shell commands, searches)</capability>
  <capability>Rapid iteration and self-correction</capability>
</capabilities>

<limitations>
  <limitation type="contextual-blindness">
    <description>Agent cannot see your codebase unless you show it</description>
    <implication>Every file, dependency, constraint must be explicitly provided</implication>
  </limitation>

  <limitation type="temporal-blindness">
    <description>Agent has no memory of previous conversations</description>
    <implication>Context must be rebuilt or retrieved via ken-you-remember each session</implication>
  </limitation>

  <limitation type="environmental-blindness">
    <description>Agent doesn't know your tools, versions, setup</description>
    <implication>Environment details must be specified in documentation or prompts</implication>
  </limitation>

  <limitation type="intentional-blindness">
    <description>Agent cannot infer your true intent from vague requests</description>
    <implication>Requirements must be explicit, constrained, and measurable</implication>
  </limitation>
</limitations>

<paradigm-shift>
  <from>
    <assumption>Agent should figure this out (it's smart)</assumption>
    <assumption>Agent remembers what we discussed yesterday</assumption>
    <assumption>Agent knows our project structure and conventions</assumption>
    <assumption>Agent understands implied requirements</assumption>
  </from>

  <to>
    <reality>Agent can only work with what it sees right now</reality>
    <reality>Agent starts every conversation with zero context</reality>
    <reality>Agent must be taught project specifics every time (or use documentation)</reality>
    <reality>Agent needs explicit requirements, no assumptions</reality>
  </to>
</paradigm-shift>
</core-principle>

<adoption-framework>
<phase name="Awareness">
  <description>Recognize agent's limitations intellectually</description>

  <exercises>
    <exercise name="Context Audit">
      <instruction>Before next task, list all information agent needs</instruction>
      <example>
        Task: "Fix login bug"
        Context needed:
        - Error logs showing bug
        - Login implementation file(s)
        - Authentication flow documentation
        - Test file for validation
        - Environment (Node version, database type)
      </example>
    </exercise>

    <exercise name="Blind Simulation">
      <instruction>Pretend you know nothing about your codebase</instruction>
      <question>What would you need to see to complete this task?</question>
      <benefit>Reveals assumed knowledge</benefit>
    </exercise>

    <exercise name="Limitation Reminder">
      <instruction>Before each prompt, state out loud:</instruction>
      <reminder>"My agent cannot see anything I don't show it"</reminder>
      <reminder>"My agent has no memory of previous sessions"</reminder>
      <reminder>"My agent needs explicit requirements"</reminder>
    </exercise>
  </exercises>
</phase>

<phase name="Practice">
  <description>Apply agent perspective deliberately</description>

  <techniques>
    <technique name="Pre-Prompt Checklist">
      <checklist>
        <item>What context is missing for this task?</item>
        <item>Which files would help agent understand?</item>
        <item>What assumptions am I making?</item>
        <item>What constraints should I specify?</item>
        <item>What does success look like exactly?</item>
      </checklist>
      <usage>Run through checklist before submitting prompt</usage>
    </technique>

    <technique name="Context-First Communication">
      <pattern>
        1. Provide context (files, docs, background)
        2. State task clearly (with constraints)
        3. Define success criteria
        4. Then let agent work
      </pattern>
      <example>
        "Here's our authentication system (shows auth.ts, user.model.ts).
         Current issue: Users logged out after 15 minutes.
         Task: Add JWT refresh tokens with 7-day expiry.
         Constraints: Don't modify user.model.ts, maintain backward compatibility.
         Success: Users stay logged in for 7 days, all auth tests pass."
      </example>
    </technique>

    <technique name="Explicit Over Implicit">
      <principle>Never rely on agent inferring what you mean</principle>
      <comparison>
        <implicit>Fix the auth (agent guesses what's wrong)</implicit>
        <explicit>Fix JWT token expiration in auth/middleware.ts line 47</explicit>
      </comparison>
    </technique>

    <technique name="Show, Don't Tell">
      <principle>Provide actual code/files instead of descriptions</principle>
      <comparison>
        <tell>"Use the same pattern as our other endpoints"</tell>
        <show>"Here's userEndpoint.ts - follow this pattern for orderEndpoint.ts"</show>
      </comparison>
    </technique>
  </techniques>
</phase>

<phase name="Internalization">
  <description>Agent perspective becomes automatic</description>

  <indicators>
    <indicator>You instinctively load relevant files before asking</indicator>
    <indicator>You write prompts with constraints and examples by default</indicator>
    <indicator>You use ken-you-remember proactively for context persistence</indicator>
    <indicator>You think "What does my agent need?" not "What do I want?"</indicator>
    <indicator>You anticipate agent questions and preempt them</indicator>
  </indicators>

  <mastery-signs>
    <sign>Clarification rate drops below 1 per task</sign>
    <sign>First-attempt success rate exceeds 70%</sign>
    <sign>You can predict which tasks will succeed one-shot</sign>
    <sign>You optimize leverage points intuitively</sign>
  </mastery-signs>
</phase>
</adoption-framework>

<practical-applications>
<scenario name="Debugging">
  <without-agent-perspective>
    Prompt: "The login is broken, fix it"
    Result: Agent asks for error logs, relevant files, what "broken" means
    Iterations: 4-5 before resolution
  </without-agent-perspective>

  <with-agent-perspective>
    Prompt: "Login returns 500 error. Here's the error log (shows stack trace).
            Here's auth/login.ts and auth/middleware.ts (shows code).
            Error occurs when user has expired token.
            Fix: Handle expired tokens gracefully, return 401 instead of 500.
            Success: No 500 errors, expired tokens return 401, tests pass."
    Result: Agent implements fix correctly
    Iterations: 1
  </with-agent-perspective>

  <improvement>80% reduction in back-and-forth</improvement>
</scenario>

<scenario name="Feature Implementation">
  <without-agent-perspective>
    Prompt: "Add user roles"
    Result: Agent asks about role types, database schema, permissions model, UI requirements
    Iterations: 6-8 before completion
  </without-agent-perspective>

  <with-agent-perspective>
    Prompt: "Add user roles feature. Requirements:
            - Roles: 'admin', 'editor', 'viewer' (enum)
            - Add role field to User model (show user.model.ts)
            - Add role check middleware (follow pattern in auth/middleware.ts)
            - Admin can access all routes, editor can POST/PUT, viewer can only GET
            - Update existing users to 'viewer' by default
            Constraints:
            - Do NOT modify authentication logic
            - Add tests for each role
            Success criteria:
            - Role-based access working per spec
            - All tests pass
            - Migration script for existing users"
    Result: Agent implements complete feature
    Iterations: 1-2
  </with-agent-perspective>

  <improvement>75% reduction in iterations</improvement>
</scenario>

<scenario name="Refactoring">
  <without-agent-perspective>
    Prompt: "Refactor the user service"
    Result: Agent asks what to refactor, how, why, which parts to keep
    Risk: Agent over-engineers or changes behavior
  </without-agent-perspective>

  <with-agent-perspective>
    Prompt: "Refactor userService.ts (shows file). Goals:
            - Extract validation logic to userValidation.ts
            - Extract database queries to userRepository.ts
            - Keep business logic in userService.ts
            Constraints:
            - NO behavior changes (tests must pass unchanged)
            - NO new dependencies
            - ONLY structure changes
            Process:
            1. Extract validation functions
            2. Run tests (must pass)
            3. Extract database functions
            4. Run tests (must pass)
            Success: Same tests pass, cleaner structure"
    Result: Safe, incremental refactoring
    Iterations: 1
  </with-agent-perspective>

  <improvement>Zero behavioral regressions</improvement>
</scenario>
</practical-applications>

<common-mistakes>
<mistake name="Assuming Agent Memory">
  <example>"Like we discussed yesterday, add that feature"</example>
  <consequence>Agent has no idea what "that feature" is</consequence>
  <fix>Either repeat context or use recall_fr3k to retrieve stored memory</fix>
</mistake>

<mistake name="Vague Requirements">
  <example>"Make it better" / "Optimize this"</example>
  <consequence>Agent guesses at intent, likely misses target</consequence>
  <fix>"Reduce API response time below 200ms by adding Redis cache"</fix>
</mistake>

<mistake name="Implicit Constraints">
  <example>"Add feature X" (expecting agent to maintain convention Y)</example>
  <consequence>Agent adds feature without following convention</consequence>
  <fix>"Add feature X following our TypeScript strict mode and DDD patterns"</fix>
</mistake>

<mistake name="Context Dumping">
  <example>Shows 50 files hoping agent finds relevant parts</example>
  <consequence>Context window overwhelmed, signal lost in noise</consequence>
  <fix>Curate 3-5 most relevant files with explanation of each</fix>
</mistake>

<mistake name="Assumed Expertise">
  <example>"Use the standard approach"</example>
  <consequence>Agent's "standard" differs from yours</consequence>
  <fix>"Use bcrypt with 12 rounds (example: shows code snippet)"</fix>
</mistake>
</common-mistakes>

<mental-models>
<model name="The Conductor Metaphor">
  <description>You are the conductor, agent is the orchestra</description>
  <analogy>
    - Conductor doesn't play instruments (doesn't write code)
    - Conductor provides sheet music (provides context/requirements)
    - Conductor signals tempo, dynamics (provides constraints/guidance)
    - Orchestra executes the vision (agent implements)
  </analogy>
  <application>Your job is orchestration, not implementation</application>
</model>

<model name="The GPS Metaphor">
  <description>Agent is GPS, you provide destination and constraints</description>
  <analogy>
    - GPS has maps (agent has knowledge)
    - You provide destination (requirements)
    - You specify constraints (no highways, shortest time)
    - GPS calculates route (agent plans implementation)
    - GPS adapts to obstacles (agent self-corrects with tests)
  </analogy>
  <application>Clear destination + constraints = optimal path</application>
</model>

<model name="The Blind Expert Metaphor">
  <description>Agent is a brilliant developer who went blind</description>
  <analogy>
    - Expert knows how to code (vast knowledge)
    - But cannot see screen (no context)
    - You must describe what's visible (provide files)
    - You must narrate changes (show diffs, errors)
    - Expert implements based on your description
  </analogy>
  <application>Verbalize everything you see, assume agent sees nothing</application>
</model>
</mental-models>

<perspective-shift-exercises>
<exercise name="Context Minimization">
  <goal>Find minimum context for task success</goal>
  <steps>
    <step>1. Provide extensive context for task</step>
    <step>2. Note which parts agent uses in solution</step>
    <step>3. Next similar task, provide only those parts</step>
    <step>4. Iterate until minimum context identified</step>
  </steps>
  <benefit>Optimize context window usage</benefit>
</exercise>

<exercise name="Prompt Rewriting">
  <goal>Transform vague prompts into agent-optimized ones</goal>
  <steps>
    <step>1. Write prompt naturally</step>
    <step>2. Identify assumptions, vagueness, missing context</step>
    <step>3. Rewrite with explicit context, constraints, success criteria</step>
    <step>4. Compare agent performance between versions</step>
  </steps>
  <benefit>Learn prompt optimization through experimentation</benefit>
</exercise>

<exercise name="Agent Role-Play">
  <goal>Internalize agent limitations viscerally</goal>
  <steps>
    <step>1. Partner with colleague</step>
    <step>2. You play agent (can only use what partner provides)</step>
    <step>3. Partner requests task</step>
    <step>4. You try to complete, noting what info you lack</step>
    <step>5. Switch roles</step>
  </steps>
  <benefit>Experiential understanding of context needs</benefit>
</exercise>
</perspective-shift-exercises>

<integration-with-leverage-points>
<connection point="1-CONTEXT">
  Agent perspective directly informs what context to provide.
  Ask: "What would I need to see if I were blind?"
</connection>

<connection point="3-PROMPT">
  Agent perspective shapes how to communicate requirements.
  Ask: "How would I describe this to someone with no project knowledge?"
</connection>

<connection point="5-DOCUMENTATION">
  Agent perspective determines what to document.
  Ask: "What do I repeatedly explain to my agent?"
</connection>

<connection point="9-PLANNING">
  Agent perspective influences task decomposition.
  Ask: "What sequential steps would someone need without context?"
</connection>

<synergy>
Adopting agent perspective amplifies effectiveness of all 12 leverage points.
It's the meta-skill that enables optimization of every other dimension.
</synergy>
</integration-with-leverage-points>

<mastery-journey>
<beginner-stage>
  <mindset>Agent is smart, should figure things out</mindset>
  <behavior>Vague prompts, minimal context</behavior>
  <outcome>Frustration, many iterations</outcome>
</beginner-stage>

<intermediate-stage>
  <mindset>Agent needs explicit information</mindset>
  <behavior>Provides context, writes clearer prompts</behavior>
  <outcome>Improved success rate, fewer iterations</outcome>
</intermediate-stage>

<advanced-stage>
  <mindset>Agent perspective is automatic</mindset>
  <behavior>Context-first communication, optimized prompts</behavior>
  <outcome>High first-attempt success, consistent quality</outcome>
</advanced-stage>

<mastery-stage>
  <mindset>Human-agent system optimization</mindset>
  <behavior>Leverage points optimization, KPI tracking</behavior>
  <outcome>One-shot success as default, 10x velocity</outcome>
</mastery-stage>
</mastery-journey>

<daily-practice>
<morning-ritual>
  Before starting work:
  1. Read stored memories: recall_fr3k for project context
  2. Review incomplete tasks: What context do they need?
  3. Set perspective: "My agent sees nothing until I show it"
</morning-ritual>

<task-initiation>
  Before each prompt:
  1. Run pre-prompt checklist
  2. Load relevant files proactively
  3. Write prompt with context + constraints + success criteria
  4. Verify: Would a blind expert understand this?
</task-initiation>

<session-end>
  After completing tasks:
  1. store_fr3k: Record key decisions and patterns
  2. Review: Which prompts worked best? Why?
  3. Refine: How can next session be more efficient?
</session-end>
</daily-practice>

<transformation>
<before>
  Developer writes code
  Agent assists occasionally
  Bottleneck: Human typing speed
</before>

<after>
  Developer orchestrates
  Agent implements systematically
  Bottleneck: Context provision quality
</after>

<impact>
  10x velocity increase
  Consistent quality
  Reduced cognitive load
  Scalable workflows
</impact>
</transformation>

<final-insight>
The Agent Perspective Mindset is not about dumbing down communication for an inferior entity.
It's about precision: eliminating ambiguity, providing complete information, enabling autonomous execution.

Your agent's brilliance is unleashed when it can see clearly.
Your role is to be its eyes, its memory, its context.

Master this perspective, and the 12 Leverage Points become intuitive.
</final-insight>