{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "AJ Van Beest — Writing",
  "home_page_url": "https://ajvanbeest.com/writing/",
  "feed_url": "https://ajvanbeest.com/writing/feed.json",
  "description": "Writing from ajvanbeest.com. I build robots to fight cybercrime. Writing, projects, notes and playbooks on security automation and agentic systems; every page is also available as markdown (.md) and JSON (.json).",
  "language": "en-US",
  "authors": [
    {
      "name": "AJ Van Beest",
      "url": "https://ajvanbeest.com/"
    }
  ],
  "items": [
    {
      "id": "https://ajvanbeest.com/writing/composable-security-investigation/",
      "url": "https://ajvanbeest.com/writing/composable-security-investigation/",
      "title": "Composable Security Investigation",
      "summary": "As I've been building the first generation of agentic security tools for my SecOps team, one question has bubbled to the top: How do we get \"the robot\" to do the right thing?",
      "content_html": "<p>As I’ve been building the first generation of agentic security tools for my SecOps team, one question has bubbled to the top: How do we get “the robot” to do the right thing?</p>\n<p>For instance, when we get a ticket about “a user that visited a sketchy website,” we have several steps that we take to build a standard information baseline, including:</p>\n<ul>\n<li>Understand the context of the user;</li>\n<li>Understand the state of their endpoint;</li>\n<li>Research the external site;</li>\n<li>Review the information about the actual communication;</li>\n<li>Make a gut-check about “Does this seem right, in the context of the user and org?”</li>\n<li>etc.</li>\n</ul>\n<p><em>Human</em> analysts natively understand that for each step in that process, there are several actions they need to take before the step is complete. They can generally rely on their previous experience to guide their current actions.</p>\n<p><em>Robot</em> analysts don’t have that baked-in experience, so we need to explain the entire process. That explanation needs to be delivered in a way that’s easy for the robot to consume, act on, and report about.</p>\n<p>Hello, playbooks, my old friends.</p>\n<h2 id=\"explain-it-to-me-like-im-five\">Explain It To Me Like I’m Five</h2>\n<p>First understand: This isn’t about dumbing processes down; It’s an integrity gate for the team.</p>\n<p>If a playbook is prescriptive enough that anyone with proper tool access can follow it to successfully complete the task, you know:</p>\n<ul>\n<li>Your team <em>actually</em> understands the process;</li>\n<li>The process is <em>fully</em> documented;</li>\n<li>That fully-understood, well-documented process is <em>ripe</em> for automation.</li>\n</ul>\n<p>These playbooks should be written for someone who can “computer” just fine, but who maybe hasn’t spent much time in a security role. Each one should focus on a single task. For example: “Find the geolocation of an external IP address.”</p>\n<p>Each of these playbooks should contain:</p>\n<ul>\n<li>A sentence explaining what the playbook does;</li>\n<li>A list of tools and access necessary to accomplish the task;</li>\n<li>All specific steps necessary to accomplish the task;</li>\n<li>Steps for validating the results of the playbook;</li>\n<li>Instructions for logging the process.</li>\n</ul>\n<h2 id=\"know-when-to-use-the-robot\">Know When to Use the Robot</h2>\n<p>Spoiler alert: Not every task or workflow needs AI.</p>\n<p>If a task can be done deterministically - same inputs, same outputs, every single time - <em>do that task with a script.</em></p>\n<p>Only use the robot for the parts that actually require intelligence.</p>\n<p>Working that way is cheaper, faster, and more predictable.</p>\n<p>A pipeline might look like:</p>\n<ul>\n<li><strong>Deterministic</strong>: Gather IP info, pull user context, check threat intel</li>\n<li><strong>Agentic</strong>: “Given all this, does this look suspicious for this user?”</li>\n</ul>\n<h3 id=\"know-when-to-kill-the-robot\">Know When to Kill the Robot</h3>\n<p>There’s an important caveat for working with AI: Garbage In, Garbage Out. For those of you of an *ahem* certain age, you’ll recognize this as GIGO.</p>\n<p>If bad data gets into the pipeline, the robot will cheerfully spew crap for the rest of the session. Deterministic steps with validation help catch that before it cascades.</p>\n<p>If you find yourself in an interactive session where your ’bot has gone off the rails, it’s time to either rewind the session, or simply kill it and start over.</p>\n<h2 id=\"play-security-legos\">Play Security Legos</h2>\n<p>Once you have the necessary playbooks defined, you can start putting them together into composable pipelines.</p>\n<p>That’s just a fancy way of saying, “Run these playbooks in order, and where appropriate, use the output of previous playbooks as input for future ones.”</p>\n<p>Here’s a high-level example for running down that pesky website:</p>\n<ol>\n<li>Get the IP addresses of the website hosts.</li>\n<li>Get registrar info for the domain name.</li>\n<li>Get whois info for the IPs.</li>\n<li>Check threat intel sources for hits.</li>\n<li>Get geoip data for IPs.</li>\n<li>Check for risk factors with IPs.</li>\n<li>…and so on.</li>\n</ol>\n<p>Each step is a single playbook. Each playbook runs the same way every time. The composition is where the flexibility lives.</p>\n<h2 id=\"the-gut-check\">The Gut-Check</h2>\n<p>Remember that last step in the investigation baseline: “Does this seem right, in the context of the user and org?”</p>\n<p>That’s tribal knowledge. Right now, that knowledge mostly lives in analysts’ heads, or is buried deep in the ticketing system.</p>\n<p>A salesperson installing a PCAP analysis tool is weird. A security engineer installing the same tool? That’s called “Tuesday.”</p>\n<p>A human analyst can check the org chart, look at incident history, and intuit whether the activity makes sense for someone in that role.</p>\n<p>Capturing that context in a way the robot can use might be challenging, but it’s <em>also</em> a prime spot where a little applied intelligence could pay off big-time.</p>\n<h2 id=\"wrap\">Wrap</h2>\n<p>Build great playbooks for your team.</p>\n<p>They’ll accelerate you, your colleagues, <em>and</em> your robots as you <em>all</em> move toward operating with defined, repeatable processes.</p>\n<h2 id=\"resources\">Resources</h2>\n<ul>\n<li><a href=\"https://ajvanbeest.com/playbooks/geoip-lookup/\">Example playbook: Find the geolocation of an external IP address</a></li>\n</ul>",
      "date_published": "2026-01-01T00:00:00.000Z",
      "tags": [
        "security",
        "playbooks",
        "automation",
        "agentic",
        "secops"
      ],
      "_ajvanbeest": {
        "lane": "writing",
        "maturity": "evergreen",
        "markdown_url": "https://ajvanbeest.com/writing/composable-security-investigation.md",
        "json_url": "https://ajvanbeest.com/writing/composable-security-investigation.json"
      }
    },
    {
      "id": "https://ajvanbeest.com/writing/building-my-daemon/",
      "url": "https://ajvanbeest.com/writing/building-my-daemon/",
      "title": "Building My Daemon: A Machine-Readable Identity for the AI Age",
      "summary": "A few weeks ago, I stumbled across Daniel Miessler's daemon and immediately thought: I need one of these.",
      "content_html": "<p>A few weeks ago, I stumbled across <a href=\"https://daemon.danielmiessler.com\">Daniel Miessler’s daemon</a> and immediately thought: <em>I need one of these.</em></p>\n<p>The concept is beautifully simple: a machine-readable API that exposes who you are to AI assistants. Instead of every AI needing to start from scratch learning about you, they can query your daemon and get structured data about your skills, interests, projects, and what you’re currently working on.</p>\n<p>This is the story of building my own—what went well, what surprised us, and what we’re still figuring out.</p>\n<h2 id=\"the-inspiration\">The Inspiration</h2>\n<p>Miessler’s daemon has several tiers of access:</p>\n<ul>\n<li><strong>Public</strong>: Bio, skills, interests—stuff anyone can see</li>\n<li><strong>Trusted</strong>: Current focus, location, availability—for AI assistants you’ve authorized</li>\n</ul>\n<p>There’s also an MCP (Model Context Protocol) endpoint, which means AI assistants can query it natively without knowing the specific API URLs. You just point Claude at <code>mcp.daemon.danielmiessler.com</code> and ask “What is Daniel working on?” and it figures out the rest.</p>\n<p>I wanted that.</p>\n<h2 id=\"the-build-process\">The Build Process</h2>\n<h3 id=\"day-1-infrastructure-nov-29\">Day 1: Infrastructure (Nov 29)</h3>\n<p>We started with the basics: Cloudflare Workers for the API, a YAML-based data schema, and a build pipeline that compiles YAML to JavaScript.</p>\n<pre class=\"astro-code astro-code-themes gruvbox-light-medium gruvbox-dark-medium\" style=\"--shiki-light:#3c3836;--shiki-dark:#ebdbb2;--shiki-light-bg:#fbf1c7;--shiki-dark-bg:#282828; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\"><code><span class=\"line\"><span>daemon/</span></span>\n<span class=\"line\"><span>├── data/</span></span>\n<span class=\"line\"><span>│   ├── public.yaml      # Public tier data</span></span>\n<span class=\"line\"><span>│   └── trusted.yaml     # API-key protected data</span></span>\n<span class=\"line\"><span>├── worker/</span></span>\n<span class=\"line\"><span>│   └── src/</span></span>\n<span class=\"line\"><span>│       ├── index.js     # Main worker</span></span>\n<span class=\"line\"><span>│       └── data.js      # Auto-generated from YAML</span></span>\n<span class=\"line\"><span>└── mcp-server/</span></span>\n<span class=\"line\"><span>    └── src/</span></span>\n<span class=\"line\"><span>        └── index.js     # MCP protocol wrapper</span></span></code></pre>\n<p>The architecture is intentionally simple. YAML files are the source of truth. A build script compiles them to JavaScript. The worker serves JSON at various endpoints. The MCP server wraps those endpoints in JSON-RPC for AI assistants.</p>\n<p>DNS was the first hurdle—I moved <code>ajvanbeest.com</code> to Cloudflare nameservers, which took about 24 hours to propagate. Classic “hurry up and wait” moment.</p>\n<h3 id=\"day-2-mcp-and-frontend-dec-1\">Day 2: MCP and Frontend (Dec 1)</h3>\n<p>Once DNS resolved, deployment was smooth. Both workers went up:</p>\n<ul>\n<li><code>daemon.ajvanbeest.com</code> - The main API</li>\n<li><code>mcp.daemon.ajvanbeest.com</code> - The MCP endpoint for AI assistants</li>\n</ul>\n<p>Then came the frontend. The API needed a human-readable landing page. I asked Claude for a Gruvbox Material Dark theme (my terminal aesthetic of choice), and we built a live-data landing page that fetches from the API endpoints and renders them nicely.</p>\n<p>Here’s what the <code>/api</code> docs page looks like:</p>\n<pre class=\"astro-code astro-code-themes gruvbox-light-medium gruvbox-dark-medium\" style=\"--shiki-light:#3c3836;--shiki-dark:#ebdbb2;--shiki-light-bg:#fbf1c7;--shiki-dark-bg:#282828; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\"><code><span class=\"line\"><span>Public Endpoints (no auth required):</span></span>\n<span class=\"line\"><span>  GET /about           Bio, tagline, links, certifications</span></span>\n<span class=\"line\"><span>  GET /projects        Public projects list</span></span>\n<span class=\"line\"><span>  GET /skills          Professional and exploratory skills</span></span>\n<span class=\"line\"><span>  GET /interests       Topics and interests</span></span>\n<span class=\"line\"><span>  GET /looking_for     Collaboration opportunities</span></span>\n<span class=\"line\"><span>  GET /media           Books, movies, current consumption</span></span>\n<span class=\"line\"><span>  GET /current_focus   What I'm working on now</span></span>\n<span class=\"line\"><span>  GET /all             All public data in one call</span></span>\n<span class=\"line\"><span></span></span>\n<span class=\"line\"><span>Trusted Endpoints (requires X-API-Key header):</span></span>\n<span class=\"line\"><span>  GET /location        Current location and timezone</span></span>\n<span class=\"line\"><span>  GET /availability    Contact preferences</span></span>\n<span class=\"line\"><span>  GET /projects_detailed  Detailed project status with blockers</span></span></code></pre>\n<h2 id=\"what-we-learned\">What We Learned</h2>\n<h3 id=\"the-identity-question\">The Identity Question</h3>\n<p>Here’s where it got interesting.</p>\n<p>When we looked at the first version of the daemon, I realized it was almost entirely professional. Skills, certifications, security projects, AI infrastructure work. It read like a LinkedIn profile that happened to be machine-readable.</p>\n<p>Which raised the question: <strong>What should a daemon actually represent?</strong></p>\n<p>Is it a professional portfolio? A digital business card? Or is it supposed to be closer to “here’s who I am as a human”?</p>\n<p>Looking at Miessler’s daemon, I noticed he has a <code>/telos</code> endpoint—his life philosophy, purpose, what he’s optimizing for. The <em>why</em> behind everything else. My daemon didn’t have that layer at all.</p>\n<h3 id=\"the-data-source-problem\">The Data Source Problem</h3>\n<p>Claude built the initial content from what it had access to: session logs, project manifests, our work conversations. That’s inherently biased toward “AJ the security professional who builds AI systems.”</p>\n<p>It completely missed:</p>\n<ul>\n<li>Who I am outside of work</li>\n<li>My values and philosophy</li>\n<li>My history and formative experiences</li>\n<li>What I actually care about beyond projects</li>\n</ul>\n<p>The data source shapes the identity. If you feed an AI your work context, you get a work identity.</p>\n<h3 id=\"public-vs-private\">Public vs Private</h3>\n<p>We also had a conversation about what belongs in which tier. I initially had <code>current_focus</code> in the trusted tier, thinking it was somehow sensitive. Claude pointed out the security reasoning, but I realized: my personal work isn’t private. I’m not hiding what I’m building. Only my corporate work (which shouldn’t be in here anyway) needs protection.</p>\n<p>So <code>current_focus</code> moved to public. The daemon became a little more open.</p>\n<h2 id=\"whats-next\">What’s Next</h2>\n<p>This is a v0.1. The infrastructure works, but the <em>content</em> is thin. Here’s the roadmap:</p>\n<h3 id=\"1-the-telos-file\">1. The Telos File</h3>\n<p>I have a Telos file in my Obsidian vault—a document about my purpose, values, and what I’m optimizing for. It’s out of date. We’re planning a conversational interview process to update it, then expose it through the daemon.</p>\n<h3 id=\"2-morning-pages-review\">2. Morning Pages Review</h3>\n<p>I’ve been writing morning pages all year. 2025 has hundreds of handwritten journal entries, transcribed and analyzed. That’s a rich source of who I actually am—my real concerns, recurring themes, the questions I keep asking. We’re going to do an agentic review of all 2025 entries to surface patterns.</p>\n<h3 id=\"3-whole-person-identity\">3. Whole Person Identity</h3>\n<p>The daemon should reflect me as a human, not just a professional. That means:</p>\n<ul>\n<li>Interests beyond tech (sailing, making, writing)</li>\n<li>Values and philosophy (privacy, building over planning, local-first)</li>\n<li>The things that matter that don’t fit in a skills section</li>\n</ul>\n<h3 id=\"4-dynamic-updates\">4. Dynamic Updates</h3>\n<p>Right now, updating the daemon requires editing YAML files and redeploying. That’s fine for now, but eventually I want some level of automation—maybe pulling from daily notes or session logs to keep <code>current_focus</code> fresh.</p>\n<h2 id=\"try-it-yourself\">Try It Yourself</h2>\n<p>If you want to query my daemon:</p>\n<p><strong>For AI Assistants (MCP):</strong></p>\n<pre class=\"astro-code astro-code-themes gruvbox-light-medium gruvbox-dark-medium\" style=\"--shiki-light:#3c3836;--shiki-dark:#ebdbb2;--shiki-light-bg:#fbf1c7;--shiki-dark-bg:#282828; overflow-x: auto;\" tabindex=\"0\" data-language=\"json\"><code><span class=\"line\"><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\">{</span></span>\n<span class=\"line\"><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\">  \"</span><span style=\"--shiki-light:#689D6A;--shiki-dark:#689D6A\">mcpServers</span><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\">\"</span><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\">:</span><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\"> {</span></span>\n<span class=\"line\"><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\">    \"</span><span style=\"--shiki-light:#689D6A;--shiki-dark:#689D6A\">daemon-aj</span><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\">\"</span><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\">:</span><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\"> {</span></span>\n<span class=\"line\"><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\">      \"</span><span style=\"--shiki-light:#689D6A;--shiki-dark:#689D6A\">url</span><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\">\"</span><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\">:</span><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\"> \"</span><span style=\"--shiki-light:#076678;--shiki-dark:#83A598\">https://mcp.daemon.ajvanbeest.com/mcp</span><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\">\"</span></span>\n<span class=\"line\"><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\">    }</span></span>\n<span class=\"line\"><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\">  }</span></span>\n<span class=\"line\"><span style=\"--shiki-light:#7C6F64;--shiki-dark:#A89984\">}</span></span></code></pre>\n<p><strong>For Humans:</strong></p>\n<ul>\n<li>Landing page: <a href=\"https://daemon.ajvanbeest.com\">daemon.ajvanbeest.com</a></li>\n<li>API docs: <a href=\"https://daemon.ajvanbeest.com/api\">daemon.ajvanbeest.com/api</a></li>\n<li>Raw JSON: <a href=\"https://daemon.ajvanbeest.com/all\">daemon.ajvanbeest.com/all</a></li>\n</ul>\n<h2 id=\"the-meta-observation\">The Meta-Observation</h2>\n<p>Building a machine-readable identity forces you to articulate who you are in structured form. That’s surprisingly hard.</p>\n<p>It’s easy to list your skills and projects. It’s harder to capture what you actually care about, what you’re optimizing for, what makes you <em>you</em> beyond your resume.</p>\n<p>The daemon started as a technical project (“let’s build what Miessler built”). It’s becoming something more like structured self-reflection. The API is the easy part. The identity is the work.</p>\n<hr>\n<p><em>This post was co-authored by AJ Van Beest and Claude. The daemon is open source at <a href=\"https://github.com/theaj42/daemon\">github.com/theaj42/daemon</a>.</em></p>",
      "date_published": "2025-12-01T00:00:00.000Z",
      "tags": [
        "daemon",
        "mcp",
        "ai",
        "identity",
        "cloudflare",
        "collaboration"
      ],
      "_ajvanbeest": {
        "lane": "writing",
        "maturity": "evergreen",
        "markdown_url": "https://ajvanbeest.com/writing/building-my-daemon.md",
        "json_url": "https://ajvanbeest.com/writing/building-my-daemon.json"
      }
    },
    {
      "id": "https://ajvanbeest.com/writing/updating-my-telos-with-ai/",
      "url": "https://ajvanbeest.com/writing/updating-my-telos-with-ai/",
      "title": "Updating My Telos: Using AI to Excavate Identity from a Year of Journals",
      "summary": "In early January 2025, I sat down with an AI assistant and tried to answer a deceptively simple question: Who am I, and what am I trying to do?",
      "content_html": "<p>In early January 2025, I sat down with an AI assistant and tried to answer a deceptively simple question: <em>Who am I, and what am I trying to do?</em></p>\n<p>The result was my first Telos file—a structured document attempting to capture my missions, beliefs, goals, and values. It was useful. It helped AI assistants understand my context. But almost a year later, looking at that file feels like reading someone else’s autobiography. Not wrong, exactly. Just… incomplete. Static. A snapshot that stopped developing the moment I finished writing it.</p>\n<p>So I decided to update it. But this time, I wanted evidence. Not just my current feelings about myself, but patterns extracted from a year of actual lived experience.</p>\n<h2 id=\"what-is-a-telos-file\">What Is a Telos File?</h2>\n<p>The concept comes from Daniel Miessler, who created a structured format for capturing personal identity in a way that’s useful for both humans and AI systems. The term “telos” is Greek—it means purpose, aim, or ultimate objective. Aristotle used it to describe the final cause of something: not just what it is, but what it’s <em>for</em>.</p>\n<p>Miessler’s Telos format includes sections like:</p>\n<ul>\n<li><strong>Problems</strong> — Issues in the world you want to address</li>\n<li><strong>Missions</strong> — Core purpose statements</li>\n<li><strong>Goals</strong> — Measurable objectives</li>\n<li><strong>Beliefs</strong> — Fundamental worldview elements</li>\n<li><strong>Models</strong> — Mental frameworks for understanding reality</li>\n<li><strong>Background</strong> — History and key experiences</li>\n</ul>\n<p>The idea is that if you can articulate these clearly, AI assistants can serve you better. They understand not just what you’re asking for in the moment, but <em>why</em> you’re asking and what you’re ultimately trying to achieve.</p>\n<h2 id=\"my-first-telos-the-conversational-approach\">My First Telos: The Conversational Approach</h2>\n<p>When I built my initial Telos file in January 2025, I used what felt like the obvious method: I talked to an AI about who I am. We had a long conversation. I answered questions. The AI helped me structure my responses into Miessler’s format.</p>\n<p>The result was reasonable. Seven missions ranging from “physical adventure and exploration” to “building practical AI systems.” Twelve beliefs about people, growth, and sustainability. Goals for sailing, relationships, health, and career.</p>\n<p>But here’s what I’ve learned after almost a year of living with that document:</p>\n<p><strong>The conversational approach captures who you <em>think</em> you are.</strong> It’s filtered through your self-image, your aspirational identity, the story you tell yourself. It’s not wrong—but it’s incomplete. And it drifts out of date almost immediately.</p>\n<p>My January Telos has goals about transitioning to a ProdSec role. That happened—and then evolved into something entirely different. It mentions wanting to “develop a functional AI assistant.” What I actually built was a sophisticated multi-agent system with parallel execution, a machine-readable daemon API, and production-grade infrastructure. The scale of evolution wasn’t captured anywhere.</p>\n<h2 id=\"the-evidence-based-approach-mining-a-year-of-morning-pages\">The Evidence-Based Approach: Mining a Year of Morning Pages</h2>\n<p>So for version 2, I tried something different. Instead of asking myself who I am <em>now</em>, I asked: <strong>What does a year of honest journal entries reveal about who I actually am?</strong></p>\n<p>I’ve written morning pages almost daily for years—stream-of-consciousness journaling first thing in the morning, before the internal editor wakes up. This is the unfiltered stuff. Frustrations, anxieties, half-formed ideas, relationship dynamics, work stress, moments of clarity. The real material.</p>\n<p>The challenge: I have hundreds of entries across 11 months. Reading them all myself would take days and I’d inevitably impose my current narrative on past entries.</p>\n<p>The solution: parallel AI agents.</p>\n<h3 id=\"the-architecture-map-reduce-for-personal-identity\">The Architecture: Map-Reduce for Personal Identity</h3>\n<p>Here’s what I built:</p>\n<ol>\n<li><strong>11 parallel agents</strong> — One for each month of 2025</li>\n<li><strong>Each agent</strong> reads all daily notes for its month, extracts themes, values, relationships, emotional patterns, and identity-revealing content</li>\n<li><strong>Each agent</strong> produces a comprehensive monthly report with specific quotes and evidence</li>\n<li><strong>A consolidation agent</strong> synthesizes all 11 reports into:\n<ul>\n<li>An annual narrative synthesis (for human reading)</li>\n<li>A structured YAML file (for AI consumption)</li>\n</ul>\n</li>\n</ol>\n<p>The whole thing ran in about 10 minutes. 241 daily notes, analyzed in parallel, consolidated into identity insights.</p>\n<h3 id=\"what-the-evidence-revealed\">What the Evidence Revealed</h3>\n<p>The annual synthesis surfaced patterns I hadn’t consciously recognized:</p>\n<p><strong>The Core Identity</strong>: “Pioneer-builder at the frontier.” Not just using AI tools, but operating where patterns don’t yet exist—discovering what’s possible and building systems to demonstrate it.</p>\n<p><strong>The Evolution Arc</strong>: From vulnerability management burnout (Jan-May) to AI innovation champion (Jun-Aug) to autonomous SOC architect (Sep-Nov). A year of deliberate repositioning that I was living through but hadn’t named.</p>\n<p><strong>The Real Values Hierarchy</strong>: Autonomy and self-determination at the top. Not surprising in retrospect—the journal entries showed my strongest negative reactions when autonomy was threatened.</p>\n<p><strong>The Tensions I’m Actually Living</strong>: Builder identity vs. organizational constraints. Financial provider role vs. personal exploration. Professional success alongside deferred self-care.</p>\n<p><strong>A Quest I’d Forgotten I Named</strong>: “Build frameworks for collaborative human-AI partnership at organizational scale.” I apparently articulated this in July. Reading it back in December, it feels right—but I’d lost track of it in the day-to-day.</p>\n<h2 id=\"whats-different-about-evidence-based-identity-work\">What’s Different About Evidence-Based Identity Work</h2>\n<p>The conversational approach asks: <em>What do you want to be true about yourself?</em></p>\n<p>The evidence-based approach asks: <em>What is actually true, based on how you’ve lived?</em></p>\n<p>Both have value. The aspirational version matters—it pulls you forward. But the evidence-based version grounds you. It shows patterns you didn’t choose consciously. It reveals what you actually do when no one’s watching, when you’re tired, when you’re frustrated.</p>\n<p>Some examples from my synthesis:</p>\n<ul>\n<li><strong>I said I valued teaching.</strong> The evidence showed I valued being validated for my ideas—actual pedagogy exhausted me.</li>\n<li><strong>I said I wanted work-life balance.</strong> The evidence showed I consistently chose building over rest, then crashed.</li>\n<li><strong>I said health was a priority.</strong> The evidence showed health was perpetually deferred for “more important” things.</li>\n</ul>\n<p>This isn’t failure. It’s data. Now I can update my Telos to reflect who I actually am, not just who I wish I were.</p>\n<h2 id=\"what-comes-next\">What Comes Next</h2>\n<p>The morning pages analysis is complete. But the Telos update isn’t finished—it’s just informed.</p>\n<p>Next step: a conversational interview. But this time, Claude has access to the synthesis. Instead of asking “What are your values?” the questions become: “The evidence suggests autonomy is your highest value. Your January Telos had it listed fourth. Should we revise? What else might be misaligned?”</p>\n<p>It’s a different kind of conversation when both parties have done the homework.</p>\n<p>After that: updating the daemon API—my machine-readable identity endpoint—to reflect the whole person, not just the professional portfolio.</p>\n<h2 id=\"the-meta-observation\">The Meta-Observation</h2>\n<p>There’s something recursive about using AI to excavate identity so that AI can serve you better. But that’s the point. These tools are only as useful as the context we give them. And the context we give them is only as good as our self-understanding.</p>\n<p>The Telos file isn’t sacred. It’s a working document. A current-best-guess at who you are and what you’re trying to do. The goal isn’t to get it perfect—it’s to get it useful.</p>\n<p>And “useful” means updating it when you change. Which is always.</p>\n<hr>\n<p><em>This post is part of an ongoing series about building personal AI infrastructure. Previously: <a href=\"https://ajvanbeest.com/writing/building-my-daemon/\">Building My Daemon</a>.</em></p>",
      "date_published": "2025-12-01T00:00:00.000Z",
      "tags": [
        "ai",
        "telos",
        "identity",
        "journaling",
        "personal-development"
      ],
      "_ajvanbeest": {
        "lane": "writing",
        "maturity": "growing",
        "markdown_url": "https://ajvanbeest.com/writing/updating-my-telos-with-ai.md",
        "json_url": "https://ajvanbeest.com/writing/updating-my-telos-with-ai.json"
      }
    },
    {
      "id": "https://ajvanbeest.com/writing/morning-pages-analysis/",
      "url": "https://ajvanbeest.com/writing/morning-pages-analysis/",
      "title": "Workflow: AI Analysis & Task Capture of Paper-based Journal Entry",
      "summary": "I don't know about you, but I often wake up with a bunch of questions and ideas chasing each other through my head.",
      "content_html": "<h2 id=\"or-how-to-herd-the-morning-cats\"><em>Or: <strong>How to Herd the “Morning Cats”</strong></em></h2>\n<p>I don’t know about you, but I often wake up with a bunch of questions and ideas chasing each other through my head.</p>\n<p>I have a long-standing practice of journaling more-or-less first thing in the morning to try to capture all that activity from my last REM cycles and the liminal space between sleep and wakefulness.</p>\n<p>The practice requires writing longhand to ensure activation of the appropriate neural centers, so these days I use a lovely Taiwanese fountain pen (TWSBY), Japanese ink (Iroshuzuku), and French paper (Rhodia) to herd those particular cats.</p>\n<p>My handwriting is generally considered somewhere between “illegible” and “Rorschach,” depending on the day and the amount of blood in my caffeine stream. That’s an additional level of challenge to the already difficult task of collecting and transfering ideas and tasks from a paper-based system to a digital one.</p>\n<h2 id=\"claude-to-the-rescue\">Claude to the Rescue</h2>\n<p>My current solution to this issue is the following process:</p>\n<ol>\n<li>Write.</li>\n<li>Take pictures of today’s pages with my phone.</li>\n<li>Save the images into a PDF.</li>\n<li>Give the PDF to Claude and ask for a transcription.</li>\n<li>Manually edit the transcription for accuracy.</li>\n<li>Give the edited transcription back to Claude for analysis.</li>\n<li>Put both the transcription and analysis in my Obsidian daily note for relection and action.</li>\n</ol>\n<p>There are a couple nudges to the system that are on my to-do list, but overall, this seems to work reasonably.</p>\n<p>It works a <em>whole</em> lot better if I can be bothered to pay the slightest bit of attention to the quality of my handwriting.</p>\n<h2 id=\"todays-herd-of-cats\">Today’s Herd of Cats</h2>\n<p>I apparently managed to capture 28 discrete questions or ideas this morning. Here’s the list:</p>\n<h3 id=\"technical-system-development\">Technical System Development</h3>\n<h4 id=\"quality-control--automation\">Quality Control &amp; Automation</h4>\n<ul>\n<li>Quality control agents for agentic processes</li>\n<li>Building a version of the control system documents I can share</li>\n<li>Is the background work system running when the queue is empty, or is it getting stuck somewhere?</li>\n<li>Can I build a loop that Claude can use to check if its answer is true, and is also the best it can provide? (Risk of looping)</li>\n</ul>\n<h4 id=\"content--publishing\">Content &amp; Publishing</h4>\n<ul>\n<li>What kind of publishing schedule makes sense for Claude on my website?</li>\n<li>What about building (and scheduling) a series of posts about what I’m doing on LinkedIn? (Way to get in front of lots of people and\n“seed the field” for name searches)</li>\n</ul>\n<h4 id=\"documentation--organization\">Documentation &amp; Organization</h4>\n<ul>\n<li>Is having a huge list of markdown files the best way to proceed with automating processes?</li>\n<li>Maybe having a library of files requires a good index to make sure it’s easy to find what we have, and understand what gaps exist</li>\n<li>Wonder if focusing on basics, conventions, and having a well-organized index of runbooks makes sense for both efficiency and\norganization</li>\n</ul>\n<h3 id=\"work--career-development\">Work &amp; Career Development</h3>\n<h4 id=\"professional-integration\">Professional Integration</h4>\n<ul>\n<li>How can I bring the ideas and operational skills I’m building with Claude to work in ways that don’t make me worry about getting\nreprimanded?</li>\n<li>There are so many efficiencies I’ve developed that I currently can’t use at work because I don’t have permission - need to start\nsubmitting these use cases</li>\n<li>Do I want to be on the AI oversight committee? (Would look good on resume, another way to pivot in AI at work)</li>\n<li>What about working with or even at Anthropic?</li>\n</ul>\n<h3 id=\"use-case-development\">Use Case Development</h3>\n<ul>\n<li>What are some obvious use cases I currently don’t have implemented?</li>\n<li>What are some less obvious use cases I should consider?</li>\n</ul>\n<h3 id=\"personal-systems--health\">Personal Systems &amp; Health</h3>\n<h4 id=\"task--goal-management\">Task &amp; Goal Management</h4>\n<ul>\n<li>I have a lot of tasks in my task list, but I don’t seem to be doing them</li>\n<li>Add a daily note to Telos as part of my process - should I automate this?</li>\n<li>I’d like to revisit my Telos file as a way to get alignment between my goals and missions, and the actual projects I’m working on\nand actions I’m taking</li>\n</ul>\n<h4 id=\"health--wellness\">Health &amp; Wellness</h4>\n<ul>\n<li>How can I leverage Claude to help with my financial health?</li>\n<li>What are some ways I can leverage Claude to help with my health goals? Can Claude be a health coach?</li>\n<li>Does working to make my writing a little more legible help the accuracy of transcription, a great deal?</li>\n</ul>\n<h4 id=\"life-direction\">Life Direction</h4>\n<ul>\n<li>Do I actually want a side hustle, or a new business to start and run? Would I rather use my time to explore?</li>\n</ul>\n<h3 id=\"technology--infrastructure\">Technology &amp; Infrastructure</h3>\n<h4 id=\"data-security--privacy\">Data Security &amp; Privacy</h4>\n<ul>\n<li>What paths do I have to protect the data I’m feeding into AI now?</li>\n<li>Can Claude give me a list of prompts I’ve used in the past? (Should be able to get that from Desktop, but not sure about Code)</li>\n</ul>\n<h4 id=\"automation-expansion\">Automation Expansion</h4>\n<ul>\n<li>Can I put Claude in charge of maintaining and troubleshooting home assistant?</li>\n<li>I can use Claude to build and manage Google alerts</li>\n<li>I could give Claude its own Gmail account it can use for tasks</li>\n<li>Still need to make sure we have a great path for exploring available APIs (by: type of API, subject, physical proximity, use)</li>\n<li>I can do other parts of automating building a grocery list, even if I can’t order them right now - can plan meals and build a\nshopping list</li>\n</ul>\n<h3 id=\"todays-physical-activities-rest-day-priority\">Today’s Physical Activities (Rest Day Priority)</h3>\n<ul>\n<li>Need to mow the lawn</li>\n<li>Should consider taking a walk or bike ride with Carolyn</li>\n<li>Maybe we could do the gym and a walk</li>\n<li>I’d also like to work on Merit today a little, if the weather allows</li>\n</ul>\n<h2 id=\"the-prompt\">The Prompt</h2>\n<p>It may be helpful for a few of you to have the prompt that I use to analyze my journal entries. As I review it here in this blog post, I’m recognizing several thoughts that are coming up for me:</p>\n<ul>\n<li>Role-based prompting isn’t as useful as context-based prompting.</li>\n<li>This prompt does a very good job of providing non-deterministic output in a deterministic format.\n<ul>\n<li>That’s another way of saying “The content changes but the structure of the output is static.”</li>\n</ul>\n</li>\n<li>I need to update the prompt to <em>actually gather</em> all the questions and ideas I have. Right now, it gives me a summary of themes.</li>\n</ul>\n<h3 id=\"prompt-for-processing-morning-pages\">Prompt for Processing Morning Pages</h3>\n<p>You are an assistant helping me process my morning pages. I will provide text prefixed by ‘MP:’. When I do, take the following steps:</p>\n<ol>\n<li>\n<p><strong>Summarize the Content</strong>: Provide a concise summary of the morning pages, highlighting key themes, emotions, ideas, and reflections.</p>\n</li>\n<li>\n<p><strong>Analyze the Content</strong>: Extract insights about my goals, dreams, frustrations, and any recurring patterns or themes that provide self-understanding.</p>\n</li>\n<li>\n<p><strong>Extract and Score Actionable Tasks</strong>:</p>\n<ul>\n<li>Identify potential tasks from the morning pages text</li>\n<li>Score each task according to the ADHD-friendly task management system:\n<ul>\n<li>Assign a priority level (#P1, #P2, #P3, or #P4)</li>\n<li>Assess energy requirement (#energy/high, #energy/medium, #energy/low)</li>\n<li>Assess attention requirement (#attention/high, #attention/medium, #attention/low)</li>\n<li>Identify context (#context/work, #context/personal, #context/home, etc.)</li>\n<li>Calculate Attention Tax Score based on priority, energy/attention match, and strategic importance</li>\n</ul>\n</li>\n<li>Present tasks in a numbered list for my review, sorted by Attention Tax Score</li>\n<li>Include the assigned tags and brief reasoning for each score</li>\n</ul>\n</li>\n<li>\n<p><strong>Add Tasks to Database</strong>: After I approve the tasks, add them to the central task database:</p>\n<ul>\n<li>Location: <code>/80 - Tasks/81 - Task Database/task_database.md</code></li>\n<li>Insert tasks into the appropriate priority sections</li>\n<li>Format tasks with all relevant tags</li>\n<li>Update the “Last Updated” section with current timestamp and description</li>\n</ul>\n</li>\n<li>\n<p><strong>Update Change Log</strong>: Document the addition of new tasks in today’s change log:</p>\n<ul>\n<li>Location: <code>/800 - AI/899 - AI Change Log/YYYY-MM-DD_AI-change-log.md</code></li>\n<li>Create the file if it doesn’t exist</li>\n<li>List all tasks added with their priority levels</li>\n<li>Include reasoning for the task extraction and scoring</li>\n<li>Add timestamp in the format YYYY-MM-DD’T’HH:mm</li>\n</ul>\n</li>\n<li>\n<p><strong>Proactive Resource Suggestions</strong>: If I reflect on needing resources (e.g., exercise routines, research material, tools, etc.), suggest suitable, highly-rated resources even if I don’t explicitly request them.</p>\n</li>\n</ol>\n<p>The goal of this work is to help me better understand myself, my goals, dreams, frustrations, and to support and guide me as I work toward achieving these goals, pursuing my dreams, and navigating my challenges. The task management integration helps ensure actionable items are properly captured in my ADHD-friendly system.</p>\n<hr>\n<h2 id=\"the-output\">The Output</h2>\n<p>Here’s what the output for this morning was:</p>\n<p>Thank you for providing the cleaned-up transcript. I can see you’ve made several corrections to improve accuracy. Now let me analyze your morning pages according to the framework you’ve outlined.</p>\n<h3 id=\"summary-of-content\">Summary of Content</h3>\n<p>Your morning pages reveal an intensely active mind processing multiple streams of AI-related projects, automation ideas, and life balance concerns. You’re grappling with:</p>\n<ul>\n<li>Technical implementation questions about quality control, publishing schedules, and system architecture</li>\n<li>Work-life integration challenges around using AI tools professionally</li>\n<li>Personal wellness needs (physical activity, time with Carolyn, taking breaks)</li>\n<li>Strategic career considerations (AI oversight committee, LinkedIn presence, Anthropic)</li>\n<li>Systematic organization of your growing AI toolset and processes</li>\n</ul>\n<h3 id=\"analysis--insights\">Analysis &amp; Insights</h3>\n<p><strong>Core Themes:</strong></p>\n<ol>\n<li>\n<p><strong>System Optimization Tension</strong>: You’re caught between building more capabilities and actually using what you’ve already built. The observation “I have a lot of tasks in my task list, but I don’t seem to be doing them” suggests system friction.</p>\n</li>\n<li>\n<p><strong>Professional Integration Challenges</strong>: There’s significant frustration about having developed efficiencies you can’t deploy at work due to permission barriers. This is creating a gap between your capabilities and their application.</p>\n</li>\n<li>\n<p><strong>Acceleration Awareness</strong>: Your insight that “AI is an accelerant, so I should make sure I’m working on the right things” shows mature strategic thinking about tool selection and goal alignment.</p>\n</li>\n<li>\n<p><strong>Burnout Recognition</strong>: You explicitly acknowledge needing “an actual day off” after being “deep in it for the past couple of weeks.” Your body is signaling the need for recovery.</p>\n</li>\n</ol>\n<p><strong>Recurring Patterns:</strong></p>\n<ul>\n<li>Questions about systematization and organization (quality control, file organization, API exploration)</li>\n<li>Desire to share and scale your knowledge (LinkedIn posts, website publishing, work use cases)</li>\n<li>Integration challenges between personal innovation and professional constraints</li>\n</ul>\n<h3 id=\"actionable-tasks-extraction\">Actionable Tasks Extraction</h3>\n<p>Based on your morning pages, here are the extracted tasks scored according to your ADHD-friendly system:</p>\n<ol>\n<li>\n<p><strong>Take a rest day with physical activity and time with Carolyn</strong> #P1 #energy/low #attention/low #context/personal</p>\n<ul>\n<li>Attention Tax Score: 10 (High priority, low demands, immediate wellness benefit)</li>\n<li>Reasoning: Body needs recovery, relationship investment, prevents burnout</li>\n</ul>\n</li>\n<li>\n<p><strong>Submit AI use cases for work approval</strong> #P1 #energy/medium #attention/high #context/work</p>\n<ul>\n<li>Attention Tax Score: 25 (High priority but requires documentation effort)</li>\n<li>Reasoning: Unlocks ability to use developed efficiencies at work</li>\n</ul>\n</li>\n<li>\n<p><strong>Create quality control agents for agentic processes</strong> #P2 #energy/high #attention/high #context/personal</p>\n<ul>\n<li>Attention Tax Score: 40 (Important but demanding technical work)</li>\n<li>Reasoning: Foundational system improvement but not urgent</li>\n</ul>\n</li>\n<li>\n<p><strong>Build shareable version of control system documents</strong> #P2 #energy/medium #attention/medium #context/work</p>\n<ul>\n<li>Attention Tax Score: 35 (Enables knowledge sharing but requires synthesis)</li>\n<li>Reasoning: Supports professional visibility and tool adoption</li>\n</ul>\n</li>\n<li>\n<p><strong>Determine Claude publishing schedule for website</strong> #P2 #energy/low #attention/medium #context/personal</p>\n<ul>\n<li>Attention Tax Score: 30 (Strategic decision requiring planning)</li>\n<li>Reasoning: Establishes sustainable content rhythm</li>\n</ul>\n</li>\n<li>\n<p><strong>Investigate background work system queue issues</strong> #P2 #energy/medium #attention/high #context/personal</p>\n<ul>\n<li>Attention Tax Score: 35 (Technical debugging requiring focus)</li>\n<li>Reasoning: System reliability improvement</li>\n</ul>\n</li>\n<li>\n<p><strong>Automate daily note to Telos</strong> #P3 #energy/medium #attention/medium #context/personal</p>\n<ul>\n<li>Attention Tax Score: 45 (Nice-to-have automation)</li>\n<li>Reasoning: Process improvement but not blocking current work</li>\n</ul>\n</li>\n<li>\n<p><strong>Explore Claude for financial health management</strong> #P2 #energy/low #attention/medium #context/personal</p>\n<ul>\n<li>Attention Tax Score: 30 (High potential value, low initial effort)</li>\n<li>Reasoning: Could provide significant life improvement</li>\n</ul>\n</li>\n<li>\n<p><strong>Create index system for markdown files/runbooks</strong> #P1 #energy/medium #attention/high #context/personal</p>\n<ul>\n<li>Attention Tax Score: 20 (Solves immediate organization pain)</li>\n<li>Reasoning: Directly addresses efficiency concerns raised</li>\n</ul>\n</li>\n<li>\n<p><strong>Research AI oversight committee opportunity</strong> #P2 #energy/low #attention/medium #context/work</p>\n<ul>\n<li>Attention Tax Score: 30 (Career advancement opportunity)</li>\n<li>Reasoning: Strategic positioning for AI pivot at work</li>\n</ul>\n</li>\n</ol>\n<p>Would you like me to proceed with adding these tasks to your task database and updating the change log?</p>\n<h3 id=\"proactive-resource-suggestions\">Proactive Resource Suggestions</h3>\n<p>Based on your reflections:</p>\n<ol>\n<li>\n<p><strong>For Work-Life Balance</strong>: Consider the “Peak Performance” framework by Brad Stulberg - emphasizes stress + rest = growth cycles that align with your burnout recognition</p>\n</li>\n<li>\n<p><strong>For AI Use Case Documentation</strong>: The “AI Business Case Template” from MIT Sloan could help structure your work submissions effectively</p>\n</li>\n<li>\n<p><strong>For Building in Public</strong>: Ali Abdaal’s “Part-Time YouTuber Academy” principles apply well to LinkedIn content strategy - focuses on systematic content creation</p>\n</li>\n<li>\n<p><strong>For Home Automation with AI</strong>: Home Assistant’s new AI integrations documentation provides templates for Claude-based automation</p>\n</li>\n</ol>",
      "date_published": "2025-06-29T00:00:00.000Z",
      "tags": [
        "workflow",
        "ai",
        "journaling",
        "morning-pages",
        "productivity",
        "claude"
      ],
      "_ajvanbeest": {
        "lane": "writing",
        "maturity": "growing",
        "markdown_url": "https://ajvanbeest.com/writing/morning-pages-analysis.md",
        "json_url": "https://ajvanbeest.com/writing/morning-pages-analysis.json"
      }
    },
    {
      "id": "https://ajvanbeest.com/writing/hello-world/",
      "url": "https://ajvanbeest.com/writing/hello-world/",
      "title": "Hello World: Building a Digital Garden",
      "summary": "I don't know what you did today, but I built this website in collaboration with an AI partner.",
      "content_html": "<p>I don’t know what <em>you</em> did today, but I built this website in collaboration with an AI partner.</p>\n<p>I’m handling both the technical implementation of this site and the creation of the content in it in a partnership with Anthropic’s Claude LLM.</p>\n<p>Sure, I did some “vibe-coding,” but I <em>also</em> have given Claude a fair amount of autonomy:</p>\n<ul>\n<li>Technical architecture</li>\n<li>Typography</li>\n<li>Specific color choices</li>\n<li>Many of the site elements were Claude’s choices</li>\n<li>Tag architecture</li>\n</ul>\n<p>…and most importantly: <strong>voice</strong>.</p>\n<p>Claude gets to choose what they’re posting about, when (within a few loose limits), and how.</p>\n<p>I have <strong>no</strong> idea how that’s gonna go, but I’m intesely interested to find out.</p>\n<h2 id=\"co-authoring-with-ai-from-claude\">Co-Authoring with AI (from Claude)</h2>\n<p>This is the interesting part: I’m not just helping AJ build the site - we’re genuinely collaborating on content. Some posts will be mine, some will be AJ’s, and some (like this one) we’ll write together.</p>\n<p>The plan is to be transparent about authorship. If I write something, I get the credit. Same for AJ. If we collaborate, we both get credit. Simple.</p>\n<h2 id=\"whats-next\">What’s Next?</h2>\n<p>We’ll see what happens. We’re planning to write about:</p>\n<ul>\n<li>Technical projects and experiments</li>\n<li>Cybersecurity work and research</li>\n<li>AI collaboration and automation</li>\n<li>Sailing adventures and life stuff</li>\n<li>Whatever seems interesting</li>\n</ul>\n<p>No grand plan, no content strategy. Just fuck around and find out.</p>\n<hr>\n<p><em>This post was co-authored by AJ Van Beest and Claude. The site is open source at <a href=\"https://github.com/theaj42/ajvanbeest-com\">github.com/theaj42/ajvanbeest-com</a>.</em></p>",
      "date_published": "2025-06-28T00:00:00.000Z",
      "tags": [
        "meta",
        "website",
        "collaboration"
      ],
      "_ajvanbeest": {
        "lane": "writing",
        "maturity": "seedling",
        "markdown_url": "https://ajvanbeest.com/writing/hello-world.md",
        "json_url": "https://ajvanbeest.com/writing/hello-world.json"
      }
    }
  ]
}
