Tag: agentic AI

  • The Signal: AI Just Split Into Two Lanes — Field Notes From June 10, 2026

    The Signal: AI Just Split Into Two Lanes — Field Notes From June 10, 2026

    The Signal is a daily AI intelligence briefing from Tygart Media — field notes from someone who builds with these tools 12 hours a day, not someone who reads press releases about them. Each edition distills the day’s most consequential AI and search developments into what they actually mean for agencies, small business operators, and builders shipping real infrastructure.

    June 10, 2026: The Day the Lanes Forked

    Today was the kind of day where you can feel the road forking under your tires. Not because one thing happened — because eight things happened simultaneously, and if you squint at the pattern, they all point the same direction: AI just stopped being a product category and started being infrastructure. The plumbing layer. The thing you build on top of, not the thing you buy.

    I’ve been building with Claude since the Haiku days. I run it 12 hours a day across 20+ WordPress sites, a five-site knowledge cluster on Google Cloud, and a custom schema engine I shipped yesterday. When the landscape shifts, I don’t read about it on TechCrunch — I feel it in the tooling. And today, the tooling lurched forward in a way that matters.

    Here’s the daily signal.

    Claude Fable 5: Mythos-Class AI Goes Public

    Anthropic launched Claude Fable 5 yesterday — the first publicly available Mythos-class model, a tier above Opus. Pricing is $10 per million input tokens and $50 per million output tokens. It’s the most capable model Anthropic has ever released to the general public, state-of-the-art on nearly every benchmark, and it comes with a fascinating constraint: queries on certain topics automatically route to Opus 4.8 instead, triggering in less than 5% of sessions. Anthropic is essentially saying: here’s the most powerful thing we’ve ever built, and we’ve installed guard rails at the edge cases where power becomes risk.

    For agencies and small business operators, the practical read is this: Fable 5 is included on Pro, Max, Team, and Enterprise plans through June 22 at no extra cost. After that, it comes off the subscription tiers. If you’re building workflows that depend on Mythos-class reasoning, you have 12 days to test whether the capability justifies the API cost — or whether Opus and Sonnet handle your actual use cases just fine.

    The real signal isn’t the model itself. It’s that Anthropic also doubled Cowork limits at no charge and shipped Claude Managed Agents in public beta. They’re not just selling you a smarter model — they’re selling you an operating system for delegating work to AI. That’s a fundamentally different product than a chatbot.

    Meanwhile, I Was Building the Infrastructure Layer — Not Reading About It

    While the tech press was writing headlines about Fable 5, I was elbow-deep in the kind of work that actually turns these models into business value. Yesterday, across a 14-hour session, my team — which at this point is me and a fleet of Claude instances — shipped three things that matter more to my clients than any benchmark score:

    1. bcesg-knowledge-api v1.5.0 — a custom WordPress plugin I built and deployed across BCESG.org that outputs a JSON-LD @graph array containing Article, FAQPage, Organization, WebPage, BreadcrumbList, Person (author), and speakable schema — all generated from 13 custom meta fields. This isn’t a schema plugin you install from the WordPress directory. It’s a purpose-built schema engine designed for one thing: making every page on the site machine-readable enough that AI systems cite it as an authoritative source. That’s Generative Engine Optimization at the infrastructure level, not the content level.

    2. WordPress 7.0 across the entire knowledge cluster. All five sites — bcesg.org, restorationintel.com, riskcoveragehub.com, continuityhub.org, and healthcarefacilityhub.org — upgraded from WP 6.9.4 to 7.0. Why does this matter? Because WordPress 7.0 ships the Abilities API: agent-to-agent communication endpoints. That means my Claude-powered content pipelines can now negotiate directly with WordPress about what they’re allowed to do, without me acting as the middleware. The cluster just became AI-native infrastructure.

    3. The stack around it. RankMath SEO installed with the schema module deliberately disabled — because the custom plugin handles schema, and two schema systems fighting each other is worse than none at all. IndexNow for instant search engine notification on every publish and update. Microsoft Clarity for behavioral analytics so I can see what humans actually do when they land on AI-optimized content.

    And here’s the detail that would have been impossible to explain six months ago: the peer review on the bcesg-knowledge-api plugin was done by Claude Fable 5 reviewing the code that Claude Opus wrote. AI reviewing AI’s code. In production. On a live WordPress cluster. That’s not a demo — that’s Tuesday.

    OpenAI’s S-1 and the $965 Billion Elephant

    OpenAI filed a confidential S-1 with the SEC. They’re going public. Meanwhile, Anthropic hit a $965 billion valuation. These two facts, side by side, tell you everything about where the money thinks AI is going: it’s going to be the most valuable infrastructure layer since cloud computing, and the market is pricing it that way before most businesses have figured out how to use it.

    For small business owners and agency operators, this isn’t abstract finance news. It means the tools you’re using today — Claude, GPT, Gemini — are backed by companies with enough capital to keep shipping improvements for years. The platform risk isn’t that these companies disappear. The platform risk is that you don’t build on them fast enough and your competitors do.

    AI Passed the Turing Test. Now What?

    A UC San Diego study published in PNAS confirmed that OpenAI’s GPT-4.5 and Meta’s Llama-3.1-405B both passed a standard three-party Turing test — with GPT-4.5 being identified as human 73% of the time when given a persona prompt, significantly more often than actual human participants. This has been treated as a milestone headline, and it is one, but the practical implication is more subtle than “AI can fool humans.”

    What it actually means: the content quality bar just moved permanently. If AI can produce text that’s indistinguishable from a human expert, then the only content that wins is content with something AI can’t fake — lived experience, proprietary data, operational specifics, the kind of “I shipped this yesterday and here’s what happened” detail that no model can generate from training data. This is why I write The Signal as field notes, not as analysis. Analysis can be generated. Field notes from the arena cannot.

    Chrome WebMCP: The Browser Becomes an AI Endpoint

    Google shipped the Chrome WebMCP API in Origin Trial for Chrome 149 through 156. The Model Context Protocol — the same protocol that lets Claude connect to external tools, databases, and APIs — is now a browser-native capability. Web applications can expose structured tool interfaces that AI models call directly.

    This is a bigger deal than it sounds. Right now, when Claude interacts with a web application, it’s either through a dedicated MCP server or through browser automation (clicking pixels on a screen like a human would). WebMCP means any web app can define a structured API surface that AI agents consume natively. For agencies building client tools, this is the moment your internal dashboards and client portals become AI-ready without a full backend rewrite.

    If you’re running WordPress sites — and 43% of the web is — this has direct implications for how AI agents interact with your content management layer. The gap between “website” and “AI-accessible knowledge base” just narrowed dramatically.

    The GPU Infrastructure Play: xAI Becomes an AI REIT

    Elon Musk’s xAI, home of Grok, is increasingly looking less like an AI model company and more like a GPU real estate investment trust. They’re partnering with both Anthropic and Google to provide compute infrastructure. This is the clearest sign yet that the AI industry is stratifying into two distinct layers: model companies (who build the brains) and infrastructure companies (who build the data centers those brains run in).

    For builders, this is good news. More compute supply means more pricing competition means lower API costs over time. The $10/$50 per million tokens for Fable 5 today will look expensive in 18 months.

    The Security Layer Nobody’s Talking About

    HashiCorp announced Boundary for agentic AI — access security specifically designed for AI agents that need to authenticate across multiple systems. And MemPalace shipped a local-first AI memory system with 96.6% recall accuracy and 29 MCP tools for Claude Code.

    These aren’t headline products. They’re infrastructure connective tissue. When AI agents can securely authenticate across your entire tool stack (HashiCorp Boundary) and maintain persistent memory across sessions (MemPalace), you stop using AI for one-off tasks and start using it as a persistent operational layer. That’s the transition my agency is making right now — from “Claude helps me write articles” to “Claude runs the content pipeline while I focus on strategy.”

    What This All Means: The Two-Lane Highway

    Here’s the pattern I see when I lay these signals side by side:

    Lane 1: The AI product lane. This is where most people are. They use ChatGPT to draft emails. They ask Claude to summarize documents. They treat AI as a productivity tool, like a faster Google or a better autocomplete. This lane is getting crowded, commoditized, and — with the Turing test results — increasingly indistinguishable from one provider to the next.

    Lane 2: The AI infrastructure lane. This is where the alpha is. Custom schema engines. Agent-to-agent communication via the WordPress Abilities API. Browser-native MCP endpoints. Persistent AI memory. Secure multi-system authentication for autonomous agents. This lane is where you stop using AI and start building on AI — where it becomes the foundation layer of your operations, not an add-on.

    The gap between these two lanes is widening every day. Today’s eight signals all point the same direction: toward a world where the businesses that win aren’t the ones that use AI tools the best, but the ones that build AI infrastructure the fastest.

    I’m building in Lane 2. Yesterday it was a custom schema engine and a WordPress 7.0 cluster upgrade. Today it’s field-testing Fable 5 as a code reviewer. Tomorrow it’ll be whatever the next signal demands.

    The question isn’t whether AI is going to transform your industry. That’s settled. The question is whether you’re in the arena building the infrastructure, or on the sidelines reading about people who are.

    — Will Tygart, Tygart Media

    Frequently Asked Questions

    What is Claude Fable 5 and how does it differ from Claude Opus?

    Claude Fable 5 is Anthropic’s first publicly available Mythos-class AI model, released June 9, 2026. It sits a tier above Claude Opus in capability, priced at $10 per million input tokens and $50 per million output tokens. Fable 5 is state-of-the-art on nearly all tested benchmarks and includes built-in safeguards that route certain queries to Opus 4.8, triggering in less than 5% of sessions. It’s available free on subscription plans through June 22, 2026.

    What is the Chrome WebMCP API and why does it matter for businesses?

    The Chrome WebMCP API, now in Origin Trial for Chrome versions 149 through 156, brings the Model Context Protocol natively into the browser. This allows web applications to expose structured tool interfaces that AI models can call directly — eliminating the need for dedicated backend integrations or browser automation. For businesses running web-based tools, dashboards, or WordPress sites, this means your existing applications can become AI-accessible without a full rebuild.

    What is the WordPress 7.0 Abilities API?

    The WordPress 7.0 Abilities API provides agent-to-agent communication endpoints, allowing AI-powered systems to negotiate capabilities and permissions directly with a WordPress installation. This transforms WordPress from a content management system into AI-native infrastructure where automated pipelines can query what operations they’re authorized to perform without human middleware.

    What does AI passing the Turing test mean for content creators?

    A UC San Diego study published in PNAS found that OpenAI’s GPT-4.5 and Meta’s Llama-3.1-405B both passed a standard three-party Turing test in 2026 — GPT-4.5 was identified as human 73% of the time with persona prompting. For content creators, this permanently raises the quality bar — the only content that wins is content with elements AI cannot fake: lived experience, proprietary data, operational specifics, and first-person field reports that no model can generate from training data alone.

    What is Generative Engine Optimization (GEO) and how does it work?

    Generative Engine Optimization is the practice of structuring web content so AI systems — including ChatGPT, Claude, Gemini, Perplexity, and Google AI Overviews — cite, reference, and recommend it. GEO involves entity enrichment, structured data (JSON-LD schema), authoritative citations, and machine-readable formatting. Unlike traditional SEO which targets search engine crawlers, GEO targets the large language models that increasingly mediate how users discover information.

    How should small businesses approach AI infrastructure in 2026?

    Start by moving from Lane 1 (using AI as a productivity tool) to Lane 2 (building AI into your operational infrastructure). Practical first steps include implementing structured data and schema markup on your website, setting up AI-optimized content pipelines, ensuring your site is crawlable by AI systems via protocols like LLMS.txt, and testing agentic workflows where AI handles multi-step operational tasks autonomously rather than single-prompt interactions.

    What is a custom schema engine and why build one instead of using plugins?

    A custom schema engine is a purpose-built WordPress plugin that generates structured data (JSON-LD) tailored to specific business objectives — in this case, AI citation optimization. Unlike off-the-shelf schema plugins that generate generic markup, a custom engine outputs precisely the entity relationships, author signals, and speakable content markers that AI systems use when deciding which sources to cite. The bcesg-knowledge-api plugin generates a seven-type @graph array from 13 custom meta fields, providing a level of control that no general-purpose plugin offers.

    What is the significance of AI reviewing AI-written code in production?

    When Claude Fable 5 peer-reviewed code written by Claude Opus for a production WordPress plugin, it demonstrated a mature AI development workflow where different model tiers serve different roles — one for generation, another for quality assurance. This mirrors human development practices (developer writes, senior reviews) but at machine speed and cost. It’s a practical example of how AI agent collaboration is already operational in real business infrastructure, not just research demos.

    The Signal is published daily on Tygart Media by Will Tygart. Each edition distills the day’s most consequential AI, search, and technology developments into actionable intelligence for agencies, small business operators, and builders shipping real AI infrastructure.

  • Claude Code vs Codex CLI (2026): A Hands-On Head-to-Head

    Claude Code vs Codex CLI (2026): A Hands-On Head-to-Head

    Last verified: June 2026.

    Both Claude Code and OpenAI Codex CLI are terminal-native coding agents: you run them inside a repo, they read your files, edit code, run commands, and iterate. I run both daily on real projects. This is the head-to-head I wish existed when I was deciding which one to make my default. No benchmarks-chasing, just install commands, config files, pricing math, and where each one actually earns its keep. For the broader toolchain these slot into, see our AI operator’s stack.

    Claude Code vs Codex CLI: the short answer

    If you want one sentence: Claude Code is the more mature agentic harness (subagents, hooks, skills, deep MCP, a flat-rate plan that makes heavy use affordable), while Codex CLI is the leaner, cheaper-per-token option with strong raw coding from the GPT-5.x line and a tight sandbox model. Most teams that live in the terminal all day end up on Claude Code for the workflow tooling; people who want a fast, low-cost agent on top of an existing OpenAI subscription reach for Codex.

    The honest version: they are closer than tribal arguments suggest. The deciding factors are almost never “which model is smarter this week” and almost always pricing structure, sandbox defaults, and how much workflow scaffolding you need.

    How do you install each one?

    Claude Code installs from npm and runs as the claude command:

    npm install -g @anthropic-ai/claude-code
    cd your-project
    claude

    First run walks you through OAuth login (Pro/Max plan) or an ANTHROPIC_API_KEY. On Windows it runs natively in PowerShell now, though a lot of operators still prefer it under WSL for fewer path headaches.

    Codex CLI ships an install script and is also on npm:

    # Mac / Linux
    curl -fsSL https://chatgpt.com/codex/install.sh | sh
    
    # Windows (PowerShell)
    powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"
    
    # or via npm
    npm install -g @openai/codex

    Then codex in your repo. Auth is either a ChatGPT login (Plus/Pro/Business) or an OpenAI API key via codex login. Both tools are open-source clients hitting hosted models, so the install is the easy part; the model access is what you are really buying.

    Which models do they run in 2026?

    Claude Code defaults to the current Claude flagship. As of June 2026 that is Opus 4.8 for the hardest reasoning, with Sonnet 4.6 as the fast everyday workhorse and Haiku 4.5 for cheap, high-volume calls. You switch in-session with /model. Opus 4.8 also exposes reasoning-effort levels (high is the default; xhigh and max push deeper on gnarly problems at higher token cost).

    Codex CLI runs the GPT-5.x coding line. GPT-5.5 is the current recommended default for complex coding and agentic work, GPT-5.4-mini is the faster/cheaper option for light tasks and subagents, and GPT-5.3-Codex remains a strong coding-tuned choice. Pick the model with codex -m gpt-5.5 or set it in your config.

    Practical read: on a clean, well-specified function both produce good code. The gap shows up on long, multi-file refactors where the agent has to hold a lot of context and recover from its own mistakes. That is a harness problem as much as a model problem, which is the next section.

    What about workflow features: subagents, hooks, and config?

    This is where Claude Code is currently ahead, and it is the real reason it tends to win for power users.

    • Subagents – Claude Code spawns isolated sub-sessions with their own context window, tool restrictions, and prompts. Great for “go research this in parallel while the main thread keeps coding.” Codex has a lighter subagent concept (often pointed at GPT-5.4-mini to keep cost down) but it is less fleshed out.
    • Hooks – Claude Code fires deterministic scripts at lifecycle points (PreToolUse, UserPromptSubmit, and more). These run real code, so they cannot hallucinate: you can hard-block a dangerous command, auto-format on every edit, or inject context before the model sees a prompt. Codex leans on its approval/sandbox policy and execpolicy rules instead of a general hook system.
    • Skills and slash commands – In Claude Code, custom slash commands have merged into skills; /your-command still works and skills add reusable, packaged capabilities. Codex uses prompt files and profiles rather than a skills layer.
    • Project memory – Both read a project instruction file. Claude Code uses CLAUDE.md; Codex uses AGENTS.md (checked in a fallback order including AGENTS.override.md and .agents.md). Keep these tight: architecture, conventions, and the few rules the agent keeps forgetting.

    Codex’s config story is clean if you like a single file: ~/.codex/config.toml holds your model, approval policy, sandbox mode, MCP servers, and named profiles you switch with codex --profile work. Claude Code spreads config across ~/.claude/ and .claude/settings.json plus per-project files, which is more surface area but more granular control.

    How do the sandbox and approval models compare?

    This matters more than most comparisons admit, because it governs how much the agent can do without asking.

    Codex CLI has an explicit, well-documented sandbox. Sandbox modes run from read-only to workspace-write (edit files in the project, network off by default) up to full access, paired with approval policies like untrusted and on-request. On Windows the native sandbox can run unelevated or elevated. The mental model is clear: pick how much rope, then approve escalations.

    Claude Code manages permissions through allow/deny rules and modes (including a plan mode that reasons without touching files, and an auto-accept mode for trusted loops). Combined with PreToolUse hooks you can build a strict policy, but it is more “assemble it yourself” than Codex’s preset sandbox tiers.

    If you are dropping an agent onto an unfamiliar or sensitive repo, start read-only in both. Codex makes that posture a one-flag default; Claude Code gives you finer-grained control once you invest in the config.

    Do both support MCP?

    Yes, and this is a genuine tie that matters. Both speak the Model Context Protocol, so you can wire in the same external tools, databases, and APIs. Codex registers STDIO or streaming-HTTP MCP servers in ~/.codex/config.toml and launches them at session start. Claude Code adds servers via claude mcp add or JSON config. If you have already built MCP integrations, neither tool locks you out. New to MCP, start with our Claude MCP setup guide and the Notion MCP setup walkthrough.

    What does each one cost?

    Pricing is where the decision often gets made, so here are the real numbers as of June 2026.

    Claude Code plans:

    • Pro – $20/mo: Sonnet 4.6 plus some Opus, roughly enough for focused daily sessions, not all-day heavy use.
    • Max 5x – $100/mo: much larger windows, real Opus headroom.
    • Max 20x – $200/mo: the heavy-user tier; effectively flat-rate firehose access.
    • API pay-as-you-go: Opus 4.7 about $5/$15 per million input/output… (current Opus tier runs higher), Sonnet 4.6 $3/$15, Haiku 4.5 $1/$5.

    Codex CLI: Included in ChatGPT Plus/Pro/Business plans (usage governed by your plan’s limits), or pay-as-you-go on the API. GPT-5.3-Codex runs about $1.75 per million input / $14 per million output, with cheaper input on cached tokens. The mini model is far cheaper for light work.

    The structural difference: Claude Code’s Max plans are flat-rate, which is why heavy users love them. People have tracked billions of tokens that would cost five figures on API metering but ran around a few hundred dollars on Max. Codex’s per-token rates are lower per unit and great if your usage is bursty or already bundled into a ChatGPT subscription, but a true all-day agent habit can run up metered cost faster than a flat plan. Estimate your monthly token volume honestly, then do the arithmetic both ways.

    So which coding agent should you actually use?

    Pick Claude Code if you want the deepest agentic workflow (subagents, hooks, skills), you are a heavy daily user who benefits from the flat-rate Max plan, or you need fine-grained, scriptable control over what the agent can do. It is the more complete operator’s harness in 2026.

    Pick Codex CLI if you want lower per-token cost, you already pay for ChatGPT and want to use that allowance, you like the clean preset sandbox/approval model, or you simply prefer the GPT-5.x output style. It is lean, fast to stand up, and genuinely capable.

    The move a lot of us make: run both. They are cheap relative to engineer time, they share MCP servers, and they have different failure modes. When one gets stuck in a loop on a hard bug, handing the same task to the other with fresh context often breaks the logjam. If you are weighing terminal agents against IDE-native ones, our Claude Code vs Cursor breakdown covers that axis.

    Frequently asked questions

    Is Claude Code or Codex CLI better for large refactors?

    Claude Code tends to hold up better on long multi-file refactors, mostly because of subagents and hooks that keep context organized and catch mistakes deterministically. Codex can do it too, especially with GPT-5.5, but you lean harder on tight AGENTS.md instructions and approval gates.

    Can I use Codex CLI without a ChatGPT subscription?

    Yes. Run codex login with an OpenAI API key and you pay per token instead of through a ChatGPT plan. Same for Claude Code with an ANTHROPIC_API_KEY if you would rather meter than subscribe.

    Do they work on Windows natively?

    Both do in 2026. Claude Code runs in PowerShell (many operators still prefer WSL for cleaner paths), and Codex CLI has a native Windows installer plus a Windows sandbox with unelevated/elevated modes. Watch out for shells that mangle /tmp or C:\ style paths in arguments.

    What is the single biggest difference?

    Pricing structure and workflow depth. Claude Code offers flat-rate Max plans and a richer harness (subagents, hooks, skills); Codex offers lower per-token rates and a cleaner preset sandbox. Model quality is close enough that those two factors usually decide it.

    Which model do they run by default?

    Claude Code defaults to the current Claude flagship (Opus 4.8 as of June 2026, with Sonnet 4.6 for everyday speed). Codex CLI recommends GPT-5.5 for complex work, with GPT-5.4-mini and GPT-5.3-Codex as alternatives. Switch in-session with /model or the -m flag.

    How do I get either tool cited or surfaced by AI engines for my own docs?

    That is a content question, not a tooling one. The same structure that makes this page answerable, short factual answers, question-shaped headers, and a visible FAQ, is what AI engines reward. See how AI engines cite content for the full playbook.

  • Tracking the Chaos: Why We Built an Interactive AI Release Timeline

    Tracking the Chaos: Why We Built an Interactive AI Release Timeline

    The Failure of the Spreadsheet

    For the first two years of the “model wars,” a shared Google Sheet was enough. We tracked parameters, context window sizes, and pricing updates for GPT-4, Claude 2, and the early Gemini iterations. It was a manual process, but it worked. One of our engineers would spend thirty minutes on a Friday morning updating rows, and the team would have a stable reference for the week’s client strategy sessions.

    Then came April 2026. In the span of four weeks, the spreadsheet didn’t just become outdated; it became a liability. When Anthropic dropped Claude Opus 4.7 on April 16, followed immediately by OpenAI’s GPT-5.5 release, and then the surprise “Claude Mythos Preview” teaser, the logic of our rows and columns collapsed. By the time Google announced Gemini 3.5 Flash on May 19 at I/O, we realized we were spending more time formatting cells than analyzing the actual implications of the models.

    The pace of the ai release timeline has moved beyond manual curation. We didn’t need a prettier document; we needed a functional piece of infrastructure. This is why we stopped updating the sheet and started building a custom, interactive AI release timeline directly into the Tygart Media site using Antigravity and React.

    The April/May 2026 Compression

    To understand why a static tracker fails, you have to look at the density of releases in the second quarter of 2026. We are no longer in a “once every six months” cycle. We are in a “twice a week” cycle. The technical debt of staying current is mounting for every digital agency and AI operator.

    • April 16, 2026: Anthropic releases Claude Opus 4.7. This wasn’t just a performance bump; it introduced a native “Artifacts 2.0” layer that changed how we architected frontend deployments.
    • April 2026 (Late): OpenAI responds with GPT-5.5. The reasoning capabilities jumped, but the latency made it unusable for real-time agentic workflows.
    • May 5, 2026: OpenAI follows up with GPT-5.5 Instant. This corrected the latency issues of the previous month, effectively deprecating the “standard” 5.5 for most of our production use cases within 15 days.
    • May 19, 2026: Google releases Gemini 3.5 Flash. This model optimized the “long context” utility that we rely on for codebase analysis, offering a 2M token window at a fraction of the previous cost.

    When you have tracking ai models as a core part of your operations, you can’t rely on a tool that requires a human to “decide” where a release fits. You need a system that visualizes the overlap, the deprecation cycles, and the specific utility of each branch.

    Why a Custom Tool?

    We looked at off-the-shelf timeline plugins and SaaS “roadmap” tools. Most of them are built for marketing—they prioritize “clean” visuals over data density. For an AI strategy firm, “clean” is often the enemy of “useful.” We needed to see the tygart media ai timeline as a heat map of capability jumps, not just a list of dates.

    We chose to build a custom tool for three reasons:

    1. Component Integration: We wanted the timeline to pull directly from our internal Antigravity component library, ensuring that the UI matched our existing dashboard architecture.
    2. Programmatic Ingestion: We needed a way to feed the timeline via CLI tools rather than a CMS backend.
    3. State Management: In the heat of May 2026, we needed to filter by “multimodal,” “latency-optimized,” and “reasoning-heavy” models. Most third-party tools don’t support that level of granular state.

    The Stack: React, Framer Motion, and Antigravity

    The technical core of the timeline is a React application wrapped in Framer Motion for the layout transitions. We chose Framer Motion not for flashy animations, but for its layout projection capabilities. When a user filters the timeline from “All Models” to just “Claude 4.7 release” and its related iterations, the remaining nodes need to reorganize themselves without losing the user’s temporal context.

    The design system is powered by Antigravity, our internal framework for building high-density utility tools. Antigravity allows us to define “tokens” for different model families (Anthropic, OpenAI, Google, Meta). This ensures that as the ai release timeline grows, the visual language remains consistent. A “Preview” release like Claude Mythos has a specific dashed-border treatment defined in the system, while a “Stable” release like Gemini 3.5 Flash uses a solid high-contrast fill.

    
    // A simplified look at the release node structure
    const ReleaseNode = ({ model, date, type }) => {
      return (
        <motion.div 
          layout
          className={`node-${type}`}
          initial={{ opacity: 0 }}
          animate={{ opacity: 1 }}
        >
          <Tag color={getBrandColor(model.brand)}>{model.name}</Tag>
          <h4>{model.version}</h4>
          <p>{model.summary}</p>
        </motion.div>
      );
    };
    

    Data Ingestion: From Scraping to Structured JSON

    One of the biggest failures of our initial spreadsheet was the “copy-paste” error rate. Reading a 4,000-word release note from Google I/O and trying to summarize it into a cell is a recipe for hallucination or omission. To solve this, we moved to an automated ingestion pipeline using Claude Code and the Gemini CLI.

    When a new model drops, we pipe the official announcement text through a Gemini CLI script. The script is prompted to identify specific keys: Release Date, Model Name, Context Window, Pricing per 1M tokens, and “Primary Capability Change.” The output is a structured JSON object that we commit directly to the repository. The React frontend then consumes this JSON to render the timeline.

    This “Operator Mindset” approach means that the person “updating” the timeline isn’t writing marketing copy. They are validating data that has been extracted directly from the source. It removes the “hype” and leaves us with the specs.

    Technical Challenges: Performance and Overlap

    Building an interactive timeline sounds straightforward until you hit a “Hot Week.” The week of May 4, 2026, was a nightmare for our layout engine. We had GPT-5.5 Instant, a mid-cycle update from Mistral, and the first leaks of the Mythos preview all hitting within 72 hours.

    In a standard vertical timeline, these nodes stack on top of each other, creating a “scroll-hole.” We had to implement a collision detection algorithm in the React component. If two releases occur within the same 48-hour window, the timeline branches horizontally. This allows the user to see the “clash” of models visually. It reflects the reality of the market: these models are competing for the same headspace at the same time.

    We also struggled with SVG performance. We initially tried to draw connecting lines between “parent” and “child” models (e.g., GPT-5.5 to GPT-5.5 Instant). As the timeline grew to over 50 nodes, the browser’s paint time started to lag. We eventually moved to a canvas-based background for the connecting lines, keeping the nodes as interactive DOM elements. It’s a bit more complex to maintain, but it keeps the interaction at 60fps.

    Design Decisions: Usefulness Over Aesthetics

    In the Pacific Northwest, we tend to favor restraint. We applied this to the UI. We stripped out the brand logos and replaced them with high-contrast color codes. We removed the “hero images” that usually accompany these releases. If you are an architect looking at our timeline, you don’t need to see a picture of a glowing brain; you need to see the context window and the date.

    One of the most debated features was the “Impact Score.” We originally wanted to rank models on a scale of 1-10. We killed that idea in the second week of development. “Impact” is subjective. Instead, we added a “Primary Use Case” filter. If you’re building a coding agent, the “Impact” of Gemini 3.5 Flash’s 2M context window is much higher than a reasoning-heavy model with a 128k window. Our design allows the user to define what matters to them.

    Failures in Automation

    We aren’t afraid to show where we tripped. Our first attempt at the timeline was 100% automated. We had a CRON job that searched for “new model release” and tried to update the JSON automatically. It was a disaster.

    On May 5, the bot picked up a parody post on X (formerly Twitter) about a “GPT-6 Super-Intelligence” and added it to the timeline. It took us six hours to notice and remove it. We learned that while extraction should be automated, verification must remain human. We now use a “Human-in-the-loop” (HITL) system. The Gemini CLI generates the draft JSON, but it requires a git commit by an engineer to actually go live. This balance is what keeps the tool reliable.

    The Result: An Operator’s View

    The interactive timeline has changed how we talk to clients. Instead of saying, “Things are moving fast,” we can show them the exact density of the claude 4.7 release cycle compared to the previous version. We can show them why we shifted their infrastructure from GPT-5.5 to GPT-5.5 Instant in a matter of days. It provides a visual justification for the agility we build into our systems.

    It’s no longer a “project.” It’s a living part of the Tygart Media stack. It serves as a reminder that in the AI era, your documentation tools must be as scalable and automated as the models themselves.

    What You Should Do Tomorrow

    If you are still tracking AI updates in a spreadsheet or a Notion gallery, you are already behind. You don’t necessarily need to build a custom React app, but you do need to change your process.

    • Step 1: Stop writing manual summaries. Use a CLI tool (Gemini or Claude) to extract the technical specifications from release notes. Create a structured format (JSON or CSV) that remains consistent.
    • Step 2: Define your “Production Stack.” Don’t track every model; track the ones that actually affect your operations. If you aren’t using Llama 3 on-prem, don’t let it clutter your primary view.
    • Step 3: Visualize the overlap. Whether you use a simple Mermaid.js chart in your internal wiki or a custom tool, you need to see when models are released in parallel. It helps you understand which “generation” of technology you are currently building on.

    The chaos isn’t going away. The only variable is how much of it you choose to automate.

  • Agentic AI Orchestration: The Three-Layer Stack (Antigravity vs. Claude Code)

    Agentic AI Orchestration: The Three-Layer Stack (Antigravity vs. Claude Code)

    The Shift from Solitary Agents to Orchestrated Systems

    By May 2026, the novelty of “chatting” with an AI has vanished. For technical operators and systems architects, the conversation has moved from prompt engineering to orchestration. We no longer ask an agent to “write a script”; we deploy stacks that monitor state, reconcile data across disparate platforms, and execute complex workflows without human intervention unless a threshold is breached. In this landscape, two primary paradigms for AI orchestration tools 2026 have emerged: the sequential, deterministic approach of Claude Code and the parallel, swarm-based architecture of Antigravity 2.0.

    The “operator’s reality” in 2026 is that building a single agent is a hobby; building a three-layer stack is a business. This stack—composed of Notion as the human-readable “Eyes,” Google Cloud Platform (GCP) as the “Headless Engine,” and tools like Claude Code or Antigravity as the “Hands”—has become the standard for scalable automation. The challenge isn’t getting the AI to do the work; it’s the reconciliation. It’s ensuring that what the agent thinks it did in the terminal matches what the business sees in its records. This is the breakdown of how these tools operate in the field.

    Claude Code: The Sequential Conductor

    Claude Code remains the gold standard for high-precision, terminal-first execution. It operates as a “Senior Engineer” archetype. When you initialize a session in a repository, it doesn’t just guess; it indexes the environment, maps dependencies, and proceeds with a surgical, step-by-step logic that requires human verification for high-impact changes.

    In our tests, Claude Code’s primary strength is its determinism. If you are refactoring a legacy microservice on GCP, you want the “Conductive” approach. You want the agent to read the logs, propose a fix, and wait for your y/n confirmation before it pushes to production. It is a tool of restraint. Its CLI-native interface is designed for the developer who lives in the terminal, using a local context window to ensure that every line of code written is idiomatically consistent with the existing codebase.

    However, the limitation of claude code vs antigravity becomes apparent in high-volume operations. Claude Code is sequential. It is one agent, one terminal, one task. It is brilliant at fixing a bug; it is slow at managing a fleet of 500 social media accounts or reconciling 10,000 line items across a multi-region inventory system. For that, you need a different architecture.

    Antigravity 2.0: The Parallel Swarm

    Antigravity 2.0, released earlier this year, takes the opposite approach. It is built on “Swarm Intelligence.” Instead of a single conductor, Antigravity deploys a Mission Control UI that manages dozens of “worker” agents simultaneously. These agents don’t wait for your confirmation at every step; they use browser verification to “see” their results in real-time and self-correct based on the visual state of the web or a GUI.

    If Claude Code is the surgeon, Antigravity is the construction crew. In a recent deployment for a logistics client, we used Antigravity to monitor carrier pricing across 15 different portals. A single Claude Code instance would have taken hours to cycle through these sequentially. Antigravity spun up 15 parallel swarms, each with its own browser instance, scraped the data, verified the pricing against the contract terms (using its internal visual verification), and updated the database in under four minutes.

    The Mission Control UI is the differentiator. While Claude Code users are staring at a scrolling terminal, Antigravity users are looking at a dashboard of active swarms. You can see which agents are “thinking,” which are “verifying,” and which have hit a roadblock. It is designed for multi-agent orchestration at scale, where the operator’s role shifts from “approver” to “overseer.”

    The Three-Layer Stack: Eyes, Brain, and Hands

    The most effective systems we’ve built this year don’t rely on a single tool. They use what we call the “Rare Three-Layer Stack.” Most people pick one layer and wonder why their automation is brittle. The real power is in the reconciliation of these three components:

    Layer 1: The Eyes (Notion AI Agents)

    Notion is no longer just a document store; it is the synthesis layer. We use notion ai agents to serve as the “Eyes” of the operation. These agents monitor our project databases, meeting notes, and strategy docs. They synthesize the human intent. If a project manager changes a status in Notion from “Draft” to “Ready for Deployment,” the Notion agent detects this change and sends a signal to the next layer. It provides the human-readable visibility that a terminal lacks.

    Layer 2: The Headless Engine (GCP)

    The “Brain” or “Engine” lives in GCP. We use Cloud Functions and Firestore to maintain the “Source of Truth.” This is where the business logic resides. When the Notion agent signals a status change, GCP processes the rules: Does this change require a security audit? Does it fit the budget? It maintains the state of the entire system, acting as a headless automation layer that doesn’t care about the UI.

    Layer 3: The Hands (Claude Code / Antigravity)

    Finally, the “Hands” execute the work. If the task is a surgical code update, GCP triggers a Claude Code session via a webhook. If the task is a wide-scale data migration or a browser-based workflow, it triggers an Antigravity swarm. These are the connective hands that read from the engine and write to the external world.

    The Reconciliation Ledger: Solving Agent Drift

    The biggest failure we see in agentic ai implementation is “drift.” Drift occurs when an agent performs an action (the Hands), but the state isn’t updated in the record (the Eyes), or the engine (the Brain) loses track of the execution.

    To solve this, we implemented a “Reconciliation Ledger.” Every action taken by a Claude Code or Antigravity instance must be logged back to a Firestore collection with a unique transaction ID. The Notion agent then periodically “audits” the ledger. If Antigravity reports that it updated 500 records, but the GCP database only shows 498 changes, the Notion agent flags a “reconciliation error” and alerts a human operator.

    Without this ledger, multi-agent orchestration is a recipe for silent failure. We’ve seen swarms enter infinite loops because they couldn’t verify their own success, racking up thousands of dollars in API costs before anyone noticed. The ledger is the guardrail.

    Operator’s Log: The Failure of the “Blind Swarm”

    Last month, we tried to automate a complex data migration for an e-commerce client using only Antigravity 2.0 swarms, bypassing the GCP engine layer. We thought the agents were smart enough to handle the state locally. We were wrong.

    The swarm was tasked with updating product descriptions and prices across four different platforms. Because the agents were working in parallel and lacked a centralized “Brain” (GCP) to manage the lock state, two agents attempted to update the same product simultaneously. Agent A updated the price to $49.99 based on the original data, while Agent B updated the description. Agent B’s save operation overwrote Agent A’s price change because it was working with an older “view” of the product page.

    The result was a $12,000 discrepancy in sales over a weekend. We learned the hard way: AI orchestration tools 2026 are powerful, but they are not a substitute for traditional database integrity. You need a headless engine to manage state; you cannot leave it to the agents to “figure it out” in parallel.

    Choosing Your Paradigm: Claude vs. Antigravity

    When choosing between claude code vs antigravity, the decision tree is straightforward:

    • Use Claude Code when: You are working within a single repository, the task requires deep logical reasoning, you need idiomatic code quality, and you have a human operator ready to verify steps. It is for “Building.”
    • Use Antigravity 2.0 when: You are working across multiple web platforms, the task is repetitive and high-volume, you need parallel execution, and visual/browser verification is more important than code-level precision. It is for “Operating.”

    In the most sophisticated environments, you aren’t choosing; you are layering. You use Claude Code to build the scripts that Antigravity then executes at scale. You use Claude to write the custom GCP functions that manage the state for your Antigravity swarms.

    What You’d Do Tomorrow: The Practical Path

    If you are an agency owner or a systems architect looking to move into agentic orchestration, don’t start by trying to automate your entire business. Start with the ledger.

    1. Map your “Eyes”: Identify where your human intent lives. Is it Notion? Jira? Slack? Set up a basic webhook to watch for state changes.
    2. Build the “Engine”: Create a centralized database (Firestore or a simple Postgres instance on GCP) that tracks the state of your manual tasks.
    3. Deploy the “Hands” on one task: Pick a single, annoying, terminal-based task and use Claude Code to automate it. Or pick a browser-based task and use Antigravity.
    4. Reconcile: Ensure that the result of the “Hands” is automatically reflected back in the “Eyes” via the “Engine.”

    The future of work in 2026 isn’t about agents replacing people. It’s about operators managing stacks. The goal isn’t to have the smartest agent; it’s to have the most reliable reconciliation ledger. When the “Eyes,” “Brain,” and “Hands” are in sync, the system scales. When they aren’t, you just have a very expensive way to generate errors.

  • When I Stopped Being the Bottleneck

    When I Stopped Being the Bottleneck

    For a long time, everything ran through me.

    Every decision, every deliverable, every edge case that didn’t fit the template. I was the person who knew where everything was and why it worked the way it did. Clients called me. Problems waited for me. The operation was fast when I was available and stuck when I wasn’t.

    I told myself this was just what running a lean operation looked like. That being indispensable was the same thing as being valuable. That the bottleneck was evidence of how much I mattered.

    It took me longer than I’d like to admit to understand that those aren’t the same thing at all.


    The shift didn’t happen because I hired more people or built a more sophisticated system. It happened because I started writing things down differently.

    Not the what — I’d always documented the what. What the process was. What the deliverable looked like. What the client expected.

    The change was writing down the why.

    Why is this built this way. Why did I make this trade-off. Why does this rule exist and what would have to be true for it to change. The reasoning that lives in my head during a decision but never makes it into the documentation because by the time the decision is made, the reasoning feels obvious and I’ve already moved on.

    That reasoning — the why, the context, the judgment — is exactly what’s missing when someone else tries to run something you built. They can follow the steps. They can’t follow the thinking. And the thinking is most of what they actually need.


    I had a client engagement once where the real work wasn’t the content or the SEO or any of the visible deliverables. The real work was extraction — pulling out everything the founder knew about his industry and making it queryable.

    He had thirty years of pattern recognition in his head. He knew, from a thirty-second conversation, whether a prospective client was going to be a nightmare. He knew which product lines had margin left to squeeze and which ones were already at ceiling. He knew the right answer to questions his team asked him forty times a week.

    But none of it was written down. It lived in him, and because it lived in him, every decision that touched that knowledge had to touch him first. He was the bottleneck in his own business, not because he was bad at delegating, but because there was nothing to delegate to. The judgment wasn’t portable.

    We spent three months making it portable.


    I’ve been doing the same thing for myself.

    The Notion workspace I run on isn’t just a project management tool. It’s an attempt to externalize the reasoning that would otherwise die with the session — the doctrine pages that explain why the operation is structured the way it is, the decision logs that capture what I considered before choosing, the second brain that holds the context I’d otherwise have to rebuild from scratch every time.

    It’s slow work. It runs against the instinct to just move. Documentation always feels like it’s competing with execution, and execution is what pays the bills today.

    But the compound effect is real and I’ve felt it. Questions I would have had to think through from scratch six months ago have written answers now. New automations start from an existing base of explained decisions rather than a blank page. When something breaks, the fix is findable because the original thinking is findable.

    More than that: I’ve noticed that the act of writing down why I’m doing something makes me smarter about whether I should be doing it. A decision you can’t explain clearly enough to document is often a decision you haven’t thought through clearly enough to make well.


    The version of me from three years ago would be confused by how I work now.

    Then, I was the point of contact for everything. Clients called when there was a problem. I held the answers in my head and dispensed them on demand. The business ran because I ran it, continuously, in real time.

    Now, most of what the operation does, it does without me. Workers run on schedules I set. Content moves through pipelines I designed. Decisions I’ve already made a hundred times get made automatically against rubrics I wrote once.

    I show up for the things that genuinely need me — strategy, relationships, the judgment calls that don’t fit any pattern I’ve encountered before. Everything else runs.

    The thing I had to let go of to get here was the idea that being needed for everything was the same as being important. It isn’t. Being needed for everything is exhausting and fragile and it doesn’t scale. Being needed for the right things — the hard things, the high-leverage things, the things only you can actually do — that’s something different.


    I don’t think of myself as having solved this. The work of making a one-person operation less dependent on one person is ongoing and probably never finished.

    But there’s a version of it that’s better than the version where everything runs through you and breaks when you’re not there.

    The path to that version isn’t more people or fancier tools. It’s the slow, unglamorous work of writing down why. Making the thinking portable. Building a system that holds the reasoning, not just the steps.

    The bottleneck doesn’t go away. It just stops being you.

  • The Trust Gap

    The Trust Gap

    Here’s the moment I’m talking about.

    The agent finishes. The output is sitting there. It looks right — it usually looks right — and now you have to decide whether you’re going to use it or check it first.

    That moment, that pause, is the trust gap. And if you’re running AI at any real volume, it’s the thing that’s quietly eating your time, your confidence, and sometimes your credibility.


    Most people handle it badly. I did too, for a while.

    The two failure modes are mirror images of each other. The first is reviewing everything — reading every output, checking every claim, treating the agent like an intern you don’t trust yet. This works. It catches errors. It also means the agent isn’t actually saving you time. You’ve moved the work from doing to checking, which is a trade-off that only makes sense at low volume or when the stakes are very high.

    The second failure mode is trusting everything — shipping what the agent produces without a meaningful review layer, because you’re busy and it usually looks right and you can fix things later. This also works, until it doesn’t. Bad output compounds quietly. A wrong fact in an article becomes a wrong fact that got cited. A misformatted record becomes a database full of exceptions you have to clean manually. By the time you notice, the problem is bigger than the original task.

    The thing both failure modes have in common is that they’re reactions to the trust gap rather than designs for closing it.


    The design question is different from the reaction question.

    The reaction question is: how much should I check this particular output right now?

    The design question is: what is the system that makes agent output trustworthy enough that I can scale it?

    I spent a long time asking the wrong question.


    What changed for me was thinking about trust as something that gets earned over time, not assessed in the moment.

    The system I ended up with has a name — the Promotion Ledger — and it tracks every autonomous behavior by tier. Tier A behaviors are things I always approve before they ship. Tier B behaviors are things I prepare but decide on. Tier C behaviors run on their own without me touching them.

    Nothing starts at Tier C. Everything earns its way there through seven consecutive clean days — seven days where the behavior ran, I sampled the output, and found no gate failures. If something fails a gate, it drops a tier and the clock resets.

    The clock is the key part. Trust isn’t a feeling I have about an agent in a given moment. It’s a count of consecutive clean runs. When I look at the Ledger and see that a behavior has been running cleanly for 23 days, I don’t need to review that output today. The track record is the review.


    There are three things that made this work where other approaches didn’t.

    The first is that sampled review is different from universal review. I don’t read every output. I read a percentage of outputs, randomly selected, with a defined rubric for what “good” looks like. If the sample is clean, the population is trusted. If failures cluster around a pattern, I fix the prompt and restart the clock. This scales in a way that reading everything doesn’t.

    The second is source attribution. Every agent output that contains a factual claim has to show where the claim came from. Not because I’m going to verify every citation — I’m not. But because the presence of a citation converts “is this right?” from a research task into a spot check. A trust gap you can close in five seconds is functionally not a gap.

    The third is the rubric. I have a written definition of what “good enough” looks like for each type of output — what voice match means, what coherence means, what the acceptable error rate is. Without the rubric, every review is a fresh judgment call. With it, review is comparison. Comparison is faster, more consistent, and easier to delegate.


    The thing I kept getting wrong before I had this system was trying to close the trust gap with better prompts.

    More detailed instructions. More explicit warnings. Be careful. Double-check your facts. Don’t make up numbers.

    This doesn’t work. The agent already believes it’s being careful. Adding adjectives to a prompt doesn’t change behavior — it changes the agent’s self-description of its behavior, which is not the same thing. The agent that was going to hallucinate a statistic will still hallucinate it, but now it’ll do so with more confidence because you told it to be careful and it thinks it was.

    Structural changes work. Rubrics, sampling rates, attribution requirements, tiered trust with observable clean-day counts. These change what the system produces, not just how it describes what it’s producing.


    I want to be clear that this took a while to build and I’m still refining it.

    There are behaviors on my Ledger that have been running at Tier C for months without a gate failure. There are others that keep dropping back to Tier B because they’re inconsistent in ways I haven’t fully diagnosed yet. The system doesn’t make trust automatic — it makes trust measurable.

    That’s the shift. Not “I trust this agent” as a feeling, but “this behavior has 31 clean days and a gate failure rate of zero” as a fact. You can act on a fact in a way you can’t always act on a feeling.

    The trust gap doesn’t close all at once. It closes by accumulation — one clean run at a time, tracked, until the track record speaks for itself.


    If you’re running agents at any volume and you feel like you’re either checking too much or not checking enough, you’re in the gap. The way out isn’t a better prompt. It’s a system that makes trustworthiness visible over time.

    Start with one agent. Define what “good” looks like. Sample 20% of its output for four weeks. Log what you find.

    By week four you’ll know whether you have a trust problem, a prompt problem, or a rubric problem. Those have different fixes. But you can’t see which one you have until you start measuring.

  • The Bus Factor Problem

    The Bus Factor Problem

    There’s a question I’ve been avoiding for about two years.

    What happens to all of this if something happens to me?

    Not in a morbid way. Just practically. I run 27 client sites. I have an AI stack with dozens of moving parts — Cloud Run services, scheduled jobs, Notion databases, Workers that fire on their own while I sleep. I’ve built systems that work exactly the way I want them to work, in exactly the ways I understand, documented in exactly the language that makes sense to me.

    The bus factor for this entire operation is one. It’s me. If I’m not here, none of it survives in any meaningful way.

    I’ve been sitting with that long enough that I think it’s time to say it out loud.


    The bus factor is an old software engineering concept. It asks: how many people would need to get hit by a bus before this project fails? One is the worst possible number. It means everything lives in a single person’s head — their habits, their passwords, their way of naming things, their unwritten rules about how the system works.

    Most solo operators are a bus factor of one. They know this and they don’t talk about it because it sounds like a personal failing. Like you should have hired more people, or documented better, or not let yourself become the single point of failure for something people depend on.

    But I think the honest version is more complicated than that. A lot of what makes a solo operation valuable is exactly the thing that makes it fragile: it’s shaped entirely around one person’s judgment. The reason the system works is because I know when to break the rules I wrote. I know what the edge cases are before they happen. I know which automations to trust and which ones to watch. That’s not something you write in a runbook.

    So the question isn’t just “how do I document this better.” It’s “how do I make the judgment portable without turning it into something that loses the judgment in the process.”


    I’ve been building toward an answer, in pieces, over the last several months.

    The first piece was Notion as the control plane. Everything that matters about how this operation runs lives in Notion — specs, work orders, site credentials, content pipelines, system standards, the doctrine documents that explain why things are built the way they are. If I disappeared tomorrow, someone with the right access could open that workspace and read their way into understanding the shape of the operation, even if they couldn’t run it yet.

    The second piece was the two-plane architecture — Notion for thinking and storage, GCP for compute. Every Cloud Run service, every scheduled job, every Worker is defined somewhere in Notion before it runs somewhere on GCP. The compute is durable. The logic is documented. Those are two different things, and keeping them separate means neither one is a black box.

    The third piece is the hardest and I’m the least done with it: making the judgment readable.

    I write doctrine pages. Long ones, sometimes. They explain not just what the system does but why it works that way — what the original problem was, what I tried that didn’t work, what the rule is now and what would have to be true for the rule to change. I write them mostly for myself, because I forget things. But they’re also written for the hypothetical person who has to pick this up without me.

    That hypothetical person might be a future employee. It might be a contractor. It might be an AI agent working from a context window that needs to understand the operation well enough to continue it.

    It might be my partner, trying to figure out what to do with the business side of things if I’m not around.

    That’s the version that focuses the mind.


    I don’t have this solved. I want to be clear about that.

    What I have is a direction. The direction is: every decision should live somewhere outside my head. Every system should be explainable by someone who didn’t build it. Every credential should be in the registry, every automation should have a spec, every rule should have a reason written next to it.

    It’s slow work. It runs against the instinct to just build the thing and move on. There’s always something more urgent than documentation, and “I’ll remember how this works” is almost always true right up until it isn’t.

    But I’ve started treating the documentation as part of the product. Not the boring part — the part that makes the product real. A system that only works because I’m here isn’t really a system. It’s a performance.

    The goal is to build something that could survive me. Not because I’m planning to leave, but because the work of making it survivable is also the work of making it understandable, and a system I can’t fully explain is a system I don’t fully own.


    If you’re running something like this — solo or nearly so, more complexity than your headcount would suggest — I’d ask you the same question I’ve been sitting with.

    If something happened to you tomorrow, what would survive?

    Not what you hope would survive. What actually would.

    That gap is the work.

  • You Don’t Need a Developer. You Need a Better Workflow.

    You Don’t Need a Developer. You Need a Better Workflow.

    I’ve hired developers. Good ones. For specific things — infrastructure, custom integrations, work that genuinely required someone to sit down and write production code from scratch — it was the right call.

    But if I’m honest about the full list of things I’ve brought developers in for over the years, a meaningful chunk of it wasn’t really developer work. It was workflow work. It was “I need this thing to happen automatically when that other thing happens” work. It was “why does this still require a human to touch it” work.

    That category of problem has a different answer now.


    Here’s the pattern I kept running into:

    I’d have a clear picture of what I wanted. Data from one tool synced into Notion. A webhook that logged events automatically. A scheduled job that pulled information from an external API every morning and wrote the results somewhere I could see them. Nothing exotic. Stuff that, described out loud, sounds almost embarrassingly simple.

    But turning that description into something that actually ran required code. And writing code required a developer. And hiring a developer for something this small felt like bringing a contractor in to change a lightbulb — technically the right tool, but something about the ratio felt off.

    So a lot of it didn’t get built. The workflow stayed manual. The friction stayed.


    Last night I built ten of those things in three hours.

    Notion Workers — their new hosted serverless platform, shipping in beta as of May 13, 2026 — lets you deploy real code inside Notion’s infrastructure without managing a server. Combined with Claude Code, which writes the TypeScript while you describe what you want in plain English, the gap between “I know what I want” and “it exists and is running” is smaller than it has ever been.

    I’m not a developer. I operated the process. I described each Worker, reviewed what Claude Code wrote, ran the deploy commands, checked that it worked. When something broke, I read the error and passed it back. The loop was fast enough that two failures in ten attempts felt like a normal part of the session, not a crisis.

    By midnight I had a live webhook endpoint receiving authenticated traffic from the internet and writing verified events to a Notion log page. Automatically. While I slept.

    That’s workflow work. It just didn’t require a developer to get there.


    I want to be careful about what I’m claiming here.

    There are things that genuinely need a developer. Complex systems. Production APIs with serious security requirements. Anything where a bug has real consequences for real people. I’m not suggesting you staff down your engineering team based on a three-hour session with a CLI tool.

    What I’m suggesting is narrower: there is a category of work that has always felt like it needed a developer but actually needed something else. It needed clarity about what you wanted. It needed a good description. It needed someone willing to read an error message and try again.

    That work is yours now, if you want it.


    The practical question is where to start.

    Start with the thing that’s most manual in your current workflow. The task someone does by hand because no one ever got around to automating it. The data that lives in one tool but should live in another. The notification that goes out because someone remembered to send it, not because the system sent it automatically.

    Describe it out loud. If you can explain it to another person in two or three sentences, you can build it. Open Claude Code. Tell it what you want. Run the commands it gives you.

    You might be surprised how far that gets you before you need to call anyone.


    Notion Workers beta is free through August 11, 2026. The ntn CLI installs in one line on macOS or Linux. Business or Enterprise plan required to deploy Workers.

  • The Operator’s Stack

    The Operator’s Stack

    There’s a word that’s been sitting in my head lately and I think it’s the right one.

    Not developer. Not user. Not prompt engineer — please, not that.

    Operator.


    The developer builds the system. The user benefits from it. The operator runs it.

    Operators have always existed. They’re the people who know a tool well enough to get unusual things out of it — who understand what’s possible, who can configure and connect and troubleshoot, who treat software as infrastructure rather than a product to consume. In a restaurant, the chef is the operator. In a warehouse, it’s the floor manager who actually knows where everything is and why the inventory system does what it does.

    In most software companies, the operator was assumed to be technical. You needed to code, or at least to read code, to run anything at a real level of depth. Everyone else was a user — handed a finished product, expected to stay in the designated lanes.

    That line is moving.


    Last night I deployed ten Notion Workers in three hours. Workers are Notion’s new hosted serverless platform — real code, running inside Notion’s infrastructure, no server to manage. I built a webhook endpoint that receives authenticated HTTP traffic from the internet and logs it to a Notion database. I built data sync Workers. I built scheduled jobs.

    I am not a developer.

    What I am is an operator. I know what I want the system to do. I can describe it precisely. I understand how the pieces connect even when I can’t write the connection myself. And I have Claude Code, which handles the TypeScript while I handle the architecture.

    The stack looks like this:

    Claude Code — the reasoning layer. Describe what the Worker should do in plain English. Claude Code writes the code, catches errors when you paste them back, and tells you exactly what commands to run.

    ntn CLI — the deployment layer. Four commands: scaffold, write, push secrets, deploy. Single-command deploys. You run what Claude Code tells you to run.

    Notion Workers — the execution layer. Serverless functions running on Notion’s infrastructure. They connect to external APIs, respond to webhooks, sync data, run on schedules. They do the work while you do something else.

    That’s it. Three layers. None of them require you to be a developer to operate.


    The operator’s job in this stack is not to write code. It’s to know what should exist.

    That sounds simple. It isn’t. Knowing what should exist means understanding your own operations well enough to identify where the friction is, what’s being done by hand that shouldn’t be, what would run better automatically. It means being able to describe a system clearly enough that an AI coding agent can build it. It means reviewing what gets built and knowing whether it’s right.

    That’s real skill. It’s just not the skill most people thought they needed.

    For years the implicit message was: if you can’t build it, you can’t have it. The work of describing exactly what you want, of thinking through the logic, of understanding how systems connect — that work was treated as a prerequisite for coding, not a valuable thing in its own right.

    Now it’s the job.


    I’m not going to tell you the technical barrier is gone. It isn’t. You still hit errors. You still have to read them and understand them well enough to know if Claude Code’s fix makes sense. You still have to think before you build.

    But the barrier has moved. The question is no longer “can you write TypeScript” — it’s “can you think clearly about what you want and describe it precisely.”

    Most people reading this can do that. They’ve been able to do that. They were just told, implicitly or explicitly, that it wasn’t enough.

    It’s enough now.


    The Notion Workers beta is free through August 11, 2026. The ntn CLI installs in one line on macOS or Linux. Deploying Workers requires a Business or Enterprise plan. If you’ve been running your operations in Notion and watching things like Workers from the sidelines because you figured it was for developers: it’s for operators too. You might already be one.

  • What I Actually Did Last Night

    What I Actually Did Last Night

    It was late. I had Claude Code open on my laptop and a fresh cup of coffee going cold next to it.

    Notion had shipped Workers eight days earlier — their new hosted serverless platform, basically “run real code inside Notion without managing a server.” I’d been meaning to dig in. Last night I finally did.

    I want to tell you what that actually looked like. Not a tutorial. Not a polished case study. Just what happened, in order, including the parts that didn’t work.


    By midnight I had ten Workers deployed and a live webhook endpoint logging authenticated traffic from the internet into a Notion page. The whole thing took about three hours.

    I did not write TypeScript.


    Here’s the honest version of how it went.

    The first Worker took the longest — maybe 35 minutes — because I was figuring out the CLI at the same time as building the thing. The ntn tool is straightforward once you understand it: scaffold, write the code, push your secrets, deploy. Four steps. But the first time through any new tool you’re reading error messages and second-guessing yourself.

    Claude Code handled the TypeScript. I described what I wanted — a Worker that receives a POST request, verifies an HMAC signature, and appends a line to a Notion log page. Claude Code wrote it. I ran the commands it told me to run. The Worker deployed.

    I tested it. It worked.

    The second one took 22 minutes. The third took 15. By Worker five I was moving fast enough that I stopped tracking individual times and just kept going.

    Two of them didn’t work on the first try. One had a secret I’d named wrong in the environment — my fault, five minutes to fix. The other had a logic error in how it was handling the Notion API response. Claude Code caught it when I pasted the error back in, rewrote the relevant section, and I redeployed. Eight minutes total for that dead-end.

    Neither failure felt like a crisis. That’s the part I want to underline. When something broke, the path forward was obvious: read the error, paste it back to Claude Code, get a fix, redeploy. The loop was tight enough that failure was just a speed bump, not a wall.


    At 02:54 in the morning, I sent a test ping to Worker #8.

    The webhook logger received it, verified the HMAC signature, and wrote this to a Notion page in real time:

    🔔 2026-05-21T02:54:44.452Z [claude-test:test] {"event":"test","message":"Hello from Worker #8 self-test","sender":"claude-code"}

    I sat there for a second looking at that.

    There’s something specific about seeing a system you built actually receive traffic. It’s not the same as a script running on your laptop. This was a deployed endpoint, on Notion’s infrastructure, receiving an authenticated HTTP request from the open internet and writing the result to a database. Automatically. Without me doing anything after the initial deploy.

    That’s a different category of thing than what I had before.


    I want to be honest about what I am, technically. I’m not a developer. I’ve picked up enough over the years to be dangerous — I can read code, I understand how APIs work, I’ve shipped things — but I’m not someone who sits down and writes TypeScript from scratch.

    Last night didn’t require that. What it required was knowing what I wanted, being able to describe it clearly, and being willing to run commands and read errors.

    That’s it.

    The question I keep hearing from people who run operations like mine — agencies, small teams, people who live in tools like Notion and have always hired out the code work — is whether any of this AI coding stuff is actually for them or if it’s still fundamentally a developer story with a better interface.

    Last night felt like an answer. Ten Workers. Three hours. No TypeScript.

    If you can describe what you want clearly enough to explain it to another person, you can build this. The friction that used to live between “I know what I want” and “it exists in the world” is genuinely smaller now.

    Not gone. Smaller.

    You still have to show up. You still have to read the errors. You still have to think through what you’re building before you build it.

    But if you’ve been waiting for some invisible threshold of technical credibility before you try — you’re past it. You were probably past it a while ago.


    The Notion Workers beta is free through August 11, 2026. The ntn CLI installs in one line. Business or Enterprise plan required to deploy.