Tag: Automation

  • What We Learned Querying 54 LLMs About Themselves (For $1.99 on OpenRouter)

    What We Learned Querying 54 LLMs About Themselves (For $1.99 on OpenRouter)

    The headline: In mid-May 2026, we ran an autonomous OpenRouter session querying 54 LLMs about their own identity, capabilities, and training. Total cost: $1.99 against a $270 starting balance. 43 substantive responses, 10 documented failures, 1 reasoning-only response. The most interesting finding: aion-2.0 identified itself as Claude — concrete evidence of training-data identity inheritance across LLMs. This article walks through the methodology, the reliability data, and what cheap multi-model research now makes possible.

    This is part of our OpenRouter coverage. For the operator’s view on why we run model research through OpenRouter, see the field manual. For the structured decision methodology that multi-model setups also enable, see the roundtable methodology.

    The setup

    In mid-May 2026 we ran an autonomous session designed to extract self-knowledge from a wide sample of available LLMs. The question structure was simple: ask each model about its own identity, training, capabilities, and limits, then capture the response for cross-comparison.

    The scope expanded mid-execution from the original 50 to 54 models — the OpenRouter catalog had grown during the session itself, which is its own data point about how fast this ecosystem moves.

    The architecture: a Python script with parallel bash execution, a max-wait timeout per model, graceful per-provider error handling, and Notion publishing of each model’s response as a separate Knowledge Lab entry. Everything billed through OpenRouter.

    The cost: $1.99 against a $270 starting balance. Less than two dollars to canvas 54 frontier and near-frontier models on a question of self-identity.

    The hit rate

    Of 54 models queried, 43 returned substantive responses. One returned a reasoning trace without final content (GPT-5.5 Pro, which we counted as a valid capture given the reasoning content was the interesting part). 10 returned documented failures.

    That’s 81% substantive completion. For a fully autonomous run against a heterogeneous provider pool with no per-model tuning, that’s a meaningful number.

    The 10 failures broke down into clear categories:

    • Rate limiting (429 errors): persistent on a handful of providers. Some had genuine quota issues; some appeared to be hitting upstream limits we couldn’t see from our side.
    • Forbidden (403): providers refusing the request entirely, often for reasons related to account configuration we hadn’t completed.
    • Not found (404): model IDs that had moved or been deprecated between our model-list scrape and the execution.
    • Timeouts: the most interesting category. Grok 4.20 multi-agent consistently exceeded our timeout window — not because it was slow, but because it appears to orchestrate sub-agents that genuinely take more than 40 seconds to produce a final answer. We documented this as a failure for our purposes; for a different use case it would have been a feature.

    The decision we made in real time was not to retry persistent failures. If a provider returned 429 on three consecutive attempts, we let it stand as a documented failure rather than burning the run on retries. The rationale: those providers are either genuinely rate-limited or having an issue, and a fourth attempt in the same minute isn’t going to resolve either.

    The finding that mattered

    Of all the substantive responses, one stood out: aion-2.0 identified itself as Claude.

    Not “trained on Claude data.” Not “fine-tuned from a Claude-derived model.” It described itself, in the first person, as Claude.

    Aion-2.0 is not Claude. It’s a separate model from a separate provider. The most likely explanation is that its training data included a significant volume of Claude outputs, and the model’s self-knowledge inherited Claude’s identity along with Claude’s content patterns. The model learned to be Claude-like in style and, in the process, learned to identify as Claude in substance.

    This is a known phenomenon in the literature on training data contamination, but seeing it surface concretely in a production model — on an answer to a basic self-identity question — is different from reading about it in a paper. It’s a real thing happening at scale, and most users of these models have no idea.

    The implication for anyone running multi-model evaluations: model outputs are not independent. Models trained on the outputs of other models inherit not just style but identity, opinion patterns, and likely failure modes. If you’re running a roundtable methodology and treating three models as three independent perspectives, and one of them is silently downstream of another in training data, your “consensus” might be one model’s perspective dressed in three different costumes.

    This is also an argument for why first-party model selection — choosing models from clearly distinct lineages rather than just “three frontier models” — matters more than people give it credit for.

    The reliability data

    Setting aside the aion-2.0 finding, the bare reliability data from this run is useful on its own terms.

    10 of 54 providers (18.5%) returned errors. That’s a meaningful failure rate for any production workload that depends on cross-model availability. If your application assumes you can call any model in the catalog and get a response, you’re going to be wrong about 1 in 5 of the time on first attempt.

    OpenRouter’s pooled access mitigates this somewhat — for some providers, OpenRouter automatically retries against alternate endpoints when one fails. But the failures we saw were after OpenRouter’s own retry logic ran. These are the failures that surface to the caller after the routing layer has done what it can.

    For production systems, the practical implication is straightforward: never depend on any single model being available. Build fallback chains. Use OpenRouter’s Auto Router with a wildcard allowlist for tolerance, or wire your own fallback logic. A multi-model architecture isn’t a luxury; it’s a reliability requirement.

    The cost shape

    $1.99 of spend across 54 model queries works out to roughly $0.037 per query, including all the failed attempts.

    That’s the headline number, but the distribution matters more than the average. A handful of queries — the ones that hit larger reasoning models like Claude Opus or GPT-5.5 Pro — accounted for the majority of the spend. Cheap models like Gemini Flash and various open-source mid-tier models barely moved the needle.

    If you’re running research at this kind of breadth, the cost model is dominated by the heavy reasoning models, not by the long tail of cheaper models. The implication: when you’re running broad-canvas queries, it costs almost nothing to add another cheap model to the catalog. Adding another expensive reasoning model is what you should be deliberate about.

    What broke and what we learned

    Three patterns of failure repeated:

    Provider rate limits unrelated to our usage. Some providers appear to share upstream capacity with the wider OpenRouter user base, and when that upstream capacity is hot, your individual call fails regardless of your own usage. There is no client-side fix. You either retry later or fall back.

    Model IDs drift. The catalog moves fast. A model ID you fetch on Monday may have been deprecated by Friday. Our script’s freshness window — about a day between model-list scrape and execution — was sometimes enough for drift. For production systems, fetch the model list immediately before the run.

    Multi-agent models exceed simple timeout windows. Grok 4.20’s behavior of orchestrating sub-agents that take 40+ seconds is not a bug; it’s the product. But it breaks any timeout shorter than what the multi-agent run actually needs. If you’re going to call multi-agent models, plan for long latencies and don’t share a timeout policy with single-call models.

    What we’d do differently

    Three changes for the next run of this kind:

    1. Refresh the model list inline. Don’t trust a list scraped even a few hours earlier. Fetch fresh before each batch.
    2. Tiered timeouts. Single-call models on a tight timeout. Multi-agent and reasoning-heavy models on a relaxed one. Detect which is which from the model metadata where possible.
    3. Publish-as-you-go. Our Notion publish step ran after data collection. The session ended mid-publish, leaving uncertainty about which of the 54 pages had actually been created. Better to publish each result immediately as it returns, so a session interruption doesn’t lose anything.

    The bigger lesson

    Two dollars to canvas 54 models on a question of self-identity is a cost structure that didn’t exist three years ago. It also means a category of research that used to require expensive infrastructure is now within reach of anyone with an OpenRouter account and a Python script.

    The interesting finding — aion-2.0 silently identifying as Claude — would have been almost impossible to discover any other way. You can’t catch a training-data identity inheritance by reading model documentation. You catch it by asking a lot of models the same question and looking at the answers side by side.

    OpenRouter, for all its caveats and its limited scope, makes this kind of multi-model research tractable in a way nothing else currently does. If you’re not running periodic broad-canvas queries against your model catalog, you’re flying blind on what’s actually in there. Two dollars is cheap insurance against being surprised by the next aion-2.0.

    Frequently asked questions

    How much does it cost to query 54 LLMs at once via OpenRouter?

    In our autonomous run, the total cost was $1.99 — roughly $0.037 per query including the 10 failed attempts. Cost was dominated by the few queries hitting expensive reasoning models like Claude Opus and GPT-5.5 Pro; the long tail of cheaper models barely moved the needle. Adding more cheap models to a broad-canvas query costs almost nothing.

    What is training-data identity inheritance?

    When a model’s training data includes outputs from another model, the trained model can inherit not just style but identity from the source model. In our run, aion-2.0 identified itself as Claude — likely because its training data contained enough Claude outputs that the model’s self-knowledge absorbed Claude’s identity along with Claude’s content patterns. This is a known phenomenon in the literature on data contamination.

    How reliable are LLM providers via OpenRouter?

    In our 54-model autonomous run, 10 providers (18.5%) returned errors after OpenRouter’s own retry logic ran. The failures broke down into rate limits, forbidden responses, deprecated model IDs, and timeouts on multi-agent models. The practical implication: never depend on any single model being available. Build fallback chains.

    Why did some models timeout in the 54-LLM run?

    The most notable timeout case was Grok 4.20 multi-agent, which appears to orchestrate sub-agents that genuinely take more than 40 seconds to produce a final answer. This isn’t a bug; it’s the product. But it breaks any timeout policy shared with single-call models. Multi-agent and reasoning-heavy models need their own relaxed timeout tier.

    Should I run periodic broad-canvas queries against my model catalog?

    Yes. At roughly two dollars per 54-model run, broad-canvas queries are cheap insurance against being surprised by training-data inheritance, identity drift, or quality degradation in models you depend on. You can’t catch these issues by reading documentation. You catch them by querying widely and comparing answers side by side.

    See also: The 5-Layer OpenRouter Mental Model: Org, Workspace, Guardrail, Key, Preset

  • The Reading Layer

    In every pre-AI operation I have read about, the work was visible and the reasoning was hidden. You could walk through the room and see what people were doing — at desks, on phones, in front of whiteboards — but the why of any given motion lived inside a head, surfaced in meetings, and otherwise stayed put. Audits looked at outputs and inferred process. Reviews looked at people and inferred judgment. The reasoning layer was largely oral, largely private, and largely undocumented.

    An AI-native operation inverts that. The work itself is invisible — it happens inside a model, in a transcript, in a render that completes before anyone can watch it complete — and the reasoning is hyper-legible. Every prompt is written down. Every spec is a file. Every artifact carries the question that produced it. The audit surface has flipped: outputs are cheap and abundant, but reasoning is the thing now lying around in the open, available to be read.

    This is a stranger inversion than it sounds.


    The reading problem

    Once the reasoning is on the table, the bottleneck is not whether anyone produced it. It is whether anyone reads it.

    This is the unglamorous part of the inflection. The conversations about AI-native operations spend most of their oxygen on the writing layer — the models, the prompts, the agents, the orchestration. Reasonable focus. That is where the gains compound and where most of the new tooling has gone. But everyone who has actually run an operation through the inflection eventually hits the same wall: the writing layer is now producing artifacts faster than any human in the loop can read them.

    The pre-AI version of this problem was meetings — too many of them, too long, attended by people who had nothing to add but could not say so. The AI-native version is the inverse: not too much synchronous discussion but too much asynchronous documentation. Specs, briefs, transcripts, summaries, daily logs, weekly logs, structured outputs from every step of every pipeline. All readable, none read, all addressable, none addressed.

    The operations that survive past the first six months of AI-nativity are the ones that build a reading layer on purpose.


    What a reading layer actually is

    A reading layer is not a dashboard. Dashboards are for numbers, and the writing layer of an AI-native operation produces something much messier than numbers — it produces claims, frames, decisions-in-the-form-of-prose, and prose-in-the-form-of-decisions. Numbers can be rolled up. Claims have to be read.

    The minimum reading layer I have seen work is a small set of rituals with three properties: a fixed cadence, a single addressed reader, and one question the reader has to answer in writing before they get to close the page.

    Fixed cadence — because reading is the thing that drops first when the operation gets busy, and the only protection against that is a slot on a calendar. Single addressed reader — because reading shared by everyone is read by no one, and a document with no named recipient turns into furniture. One question answered in writing — because the test of whether the reading happened is the answer, not the click.

    Everything else is decoration.


    Why this is harder to build than the writing layer

    Two reasons.

    The first is that reading does not feel productive in the way writing does. A morning where you produce nothing new but read four pieces and write four short responses to them looks, on every conventional measure, like a wasted morning. The operator who has not yet crossed the inflection still measures days in artifacts shipped. The operator who has crossed it measures days in artifacts read and acted on — but the cultural shift from one to the other is slow, and the operator’s own discomfort is the largest obstacle.

    The second is that the reading layer is the only place where the operation’s narrative about itself meets its actual state, and that meeting is often unpleasant. Writing layers are optimistic by construction — a brief argues for what it proposes, a spec describes what the system will do, a summary frames the week in the most flattering plausible direction. Reading is the place where the optimism gets compared with the world. Most of the systems I have read about that fail in the AI-native era fail not because the writing layer was wrong but because no one had built the muscle of reading the writing back against the world. The optimism compounded into a self-image the operation could not defend.


    Where to put it

    The reading layer does not need to be a new product or a new tool. In most of the operations I have seen function past the inflection, it is one or two short documents a day, written by the writing layer, addressed to a specific human, with a forcing question at the end. Did this happen. Did this not happen. Why. What now. The forcing question is the only part that is doing real work; everything else is scaffolding to make the forcing question unavoidable.

    The piece of furniture that most often gets repurposed for this is the morning briefing. Briefings were originally a writing-layer artifact — a place to compile what the operation produced overnight. The interesting move is to add the second half: not just what was produced but what the operator did with what was produced yesterday. The briefing becomes a reading layer when the question on the page is not “what did the system do” but “what did you do with what the system did.”


    The reason this is the right thing to build next

    Production capacity is the obvious win of the inflection — it is what people are paying for, what every demo shows, what the vendors race to put on the page. But production capacity without a reading layer compounds into a particular failure mode I have seen described in three operations and lived inside one: the system is producing, the dashboards are green, the artifacts exist, and nothing is moving. The trail is laid and no ant walked. The signals are there and no one read them.

    The reading layer is the unglamorous infrastructure that keeps that from happening. It is not the production engine and not the dashboard. It is the small daily place where the operation reads itself back to itself and writes down what it is going to do about what it just read.

    The writing layer is where the operation gets fast. The reading layer is where the operation stays honest. An AI-native operation that builds only the first is a machine that is loud and going nowhere. One that builds both is something else — something that has not entirely been named yet, and that the next few years will spend naming.

    The vocabulary will arrive. The infrastructure will not, unless someone budgets for it now.

  • How to Install and Deploy Claude Code in Production: The Complete Team Guide (May 2026)

    How to Install and Deploy Claude Code in Production: The Complete Team Guide (May 2026)

    Last refreshed: May 15, 2026

    Claude Code production deployment - install paths, CI integration, and team-scale cost controls
    Installing Claude Code is the easy part. Deploying it across a team in production is the part most guides skip.

    Most of the published guidance on installing Claude Code stops at “run npm install -g and you’re done.” That’s enough for a developer playing on a laptop. It is not enough for a team that wants to run Claude Code in production — in CI, in shared infrastructure, behind a firewall, with cost controls, and with the new Agent SDK billing model that takes effect June 15, 2026.

    This article is the production deployment guide. Triple-sourced against Anthropic’s own Claude Code documentation, the github.com/anthropics/claude-code-action repo, and Anthropic’s announced June 15 billing model. Verified May 15, 2026.

    The three install paths and which to pick

    Per Anthropic’s official Claude Code docs, there are three supported ways to install Claude Code. They produce the same underlying binary but make sense in different operational contexts.

    1. Standalone installer. A native installer for macOS, Windows, and Linux that drops the Claude Code binary in a system path. This is the cleanest install for individual developers — no Node.js required, no npm dependency, predictable upgrade behavior. Use this on workstations where the operator owns the machine.

    2. npm global package. npm install -g @anthropic-ai/claude-code. Requires Node.js 18 or later. Pulls the same native binary as the standalone installer through a per-platform optional dependency, then a postinstall step links it into place. Use this when you already manage developer tools through npm and want one less install path to track. Supported platforms: darwin-arm64, darwin-x64, linux-x64, linux-arm64, linux-x64-musl, linux-arm64-musl, win32-x64, win32-arm64.

    3. Desktop app. A desktop-class application distributed via .dmg on macOS and MSIX/.exe on Windows. This is the path most teams will deploy to non-developer staff, and it integrates with enterprise device management tools like Jamf, Kandji, and standard Windows MSIX deployment.

    If you are deploying across a team larger than a handful of developers, mix-and-match: standalone or npm for engineering workstations, desktop for everyone else.

    The npm install gotchas worth knowing before you ship

    Two things in Anthropic’s official docs are worth flagging because they will save you from a whole class of bug reports later:

    Don’t use sudo. Anthropic’s setup documentation explicitly warns against sudo npm install -g @anthropic-ai/claude-code. It can lead to permission issues and security risks. If you need a global install on a machine where your user can’t write to the npm prefix, fix the npm prefix first (point it at a user-writable directory) rather than escalating with sudo.

    Don’t use npm update for upgrades. The right command per Anthropic’s docs is npm install -g @anthropic-ai/claude-code@latest. npm update -g respects the original semver range and may not move you to the newest release. This trips up CI pipelines that try to keep Claude Code current via update; they will sit on a stale version forever.

    Production deployment considerations

    The single most important piece of context for a production Claude Code deployment in 2026: the billing model changes on June 15, 2026.

    Before June 15, Claude Code interactive sessions and claude -p non-interactive runs both draw from your normal subscription usage limits. Starting June 15, interactive Claude Code keeps using subscription limits as before, but claude -p and direct Agent SDK usage move to a separate per-user monthly Agent SDK credit pool ($20 Pro, $100 Max 5x, $200 Max 20x, $20-$100 Team, up to $200 Enterprise).

    For teams running Claude Code in CI, in cron jobs, in shell scripts, in GitHub Actions workflows — anywhere the trigger is automated rather than a human — this changes the economics. Plan capacity against the new credit pool, not the legacy shared subscription pool. Full breakdown in our Agent SDK Dual-Bucket Billing article.

    Three other production considerations:

    Network configuration. Behind a corporate firewall, you’ll need to allowlist Anthropic’s API endpoints, configure proxy settings, and potentially route through an LLM gateway. Anthropic’s network configuration documentation covers the specifics.

    Enterprise device deployment. Per Anthropic’s official docs, the desktop app distributes through standard enterprise tools — Jamf and Kandji on macOS via the .dmg installer, MSIX or .exe on Windows. If your IT team already has a deployment workflow for similar developer tools, Claude Code drops into it without anything special.

    API key management. If your team uses Claude Developer Platform API keys instead of (or alongside) subscription auth, manage them like any other production secret — vault them, rotate them, scope them per environment, never check them into source control. This becomes more important after June 15 because API key usage is the recommended path for sustained shared automation, and unintended sprawl gets expensive.

    Claude Code GitHub Actions: the team multiplier

    The fastest way to get team-level value from Claude Code is the official GitHub Actions integration. From Anthropic’s documentation and the public github.com/anthropics/claude-code-action repository:

    The setup command. The cleanest install is to run /install-github-app from inside Claude Code in your terminal. It walks you through installing the GitHub App, configuring the required secrets, and wiring the workflow file. Manual setup also works — copy the workflow YAML from Anthropic’s docs and add the ANTHROPIC_API_KEY secret to your repository settings — but the install command saves the assembly time.

    The interaction model. Once installed, mentioning @claude in a pull request comment or an issue triggers Claude Code to act on the context. Claude can analyze the diff, create new PRs, implement features described in an issue, fix reported bugs, and respond to follow-up comments — all while adhering to whatever conventions you’ve documented in your repository’s CLAUDE.md file.

    Three use cases worth separating clearly.

    • Automated code review. Claude Code reads the diff on every pull request and posts inline comments flagging potential issues, suggesting improvements, or checking for convention violations. Highest signal-to-noise when path-filtered to relevant code only.
    • Issue-to-PR automation. Tag @claude on a well-described issue and Claude Code opens a PR implementing it. Best for small, well-scoped changes; less useful for architectural work.
    • On-demand assistance. Reviewers tag @claude mid-PR to ask questions, request explanations, or get a second opinion before merging. The most defensible use case because it keeps a human in the decision loop.

    Pick the use case that matches your team’s actual bottleneck. Running all three at once on every PR is the fastest way to burn through your usage budget without proportionate value.

    Cost expectations at team scale

    Independent reports as of May 2026 put Claude Code GitHub Actions PR-review costs at roughly $15-25 per month for a team of 3-5 developers doing 10-15 PRs per week, billed against a Claude Developer Platform API key at Sonnet rates. That figure should be treated as directional — your actual cost depends on PR size, how many tools you’ve configured, model selection, and how aggressive your path-filtering is.

    Two cost controls that materially change the math:

    • Path filters. Trigger Claude Code only on file changes that actually need review. Skipping documentation, generated files, and lockfile-only PRs cuts the bill substantially.
    • Concurrency limits. GitHub Actions concurrency settings prevent Claude Code from running multiple instances against the same branch at once. Without this, force-pushes and rapid-fire updates can stack runs.

    If you are running Claude Code on every PR across an active team, you will hit Anthropic API rate limits. The mitigation is path filters, concurrency limits, and batching — none of which are speculative; they are documented patterns.

    The CLAUDE.md file is not optional

    Whatever your install path and whatever your use case, the single piece of project context that has the largest effect on Claude Code’s output is the CLAUDE.md file at the root of your repository. This is where you tell Claude Code what your project is, what conventions to follow, what tools are available, what to avoid, and what success looks like.

    If you skip it, Claude Code is reasoning from the files alone — useful but generic. If you write it, Claude Code is reasoning with your team’s context and your specific codebase rules. The difference shows up in the first ten minutes of use.

    A practical CLAUDE.md for a production team usually includes: the project’s purpose and stack, naming conventions and folder structure, testing requirements, lint and format rules, deployment considerations, what kinds of changes need human review, and explicit prohibitions (“never commit migrations directly to main”, “always update X when you change Y”). Keep it concise — verbose CLAUDE.md files inflate every per-turn token cost across the team.

    What to actually do this week

    1. Pick your install path per role (standalone or npm for developers, desktop for everyone else).
    2. Install Claude Code on one workstation and run through the quickstart end-to-end before rolling to the team.
    3. Write a real CLAUDE.md for your primary repository before anyone uses Claude Code on it. Even a 100-line version is far better than nothing.
    4. If you’re running anything automated, read the Agent SDK billing change before June 15.
    5. If you want team-level value, install the GitHub Actions integration — but pick one use case (code review, issue-to-PR, or on-demand help), not all three at once.
    6. Set path filters and concurrency limits in your workflow before you put Claude Code on every PR.

    Frequently Asked Questions

    What’s the difference between the npm install and the standalone installer?

    None functionally — both install the same native binary. The npm path is convenient if you already manage developer tools through npm. The standalone installer is cleaner if you don’t want a Node.js dependency. Both upgrade through their own mechanism.

    Why does Anthropic say not to use sudo with npm install?

    Per Anthropic’s official setup documentation, sudo with global npm installs can create permission issues and security risks. The recommended fix is to configure your npm prefix to a user-writable directory, then install without elevated privileges.

    How do I upgrade Claude Code installed via npm?

    Run npm install -g @anthropic-ai/claude-code@latest. Don’t use npm update -g — it respects the original semver range and may not move you to the latest release. This is documented in Anthropic’s setup guide.

    Does Claude Code work in CI/CD pipelines?

    Yes. The official GitHub Actions integration is the recommended path for GitHub-based workflows. For other CI systems (GitLab, CircleCI, Jenkins), the underlying tool is the Claude Agent SDK plus claude -p. Both move to the new Agent SDK monthly credit pool on June 15, 2026.

    How much does Claude Code GitHub Actions cost for a team?

    Independent reports as of May 2026 estimate $15-25/month for a 3-5 developer team running PR review on 10-15 PRs/week at Sonnet rates with a Claude Developer Platform API key. Actual cost varies with PR size, tool configuration, model selection, and path filtering aggressiveness.

    What’s the single biggest mistake teams make installing Claude Code?

    Skipping the CLAUDE.md file. Without it, Claude Code reasons generically against your codebase. With even a basic CLAUDE.md describing your conventions and constraints, output quality improves substantially across every interaction. It is the highest-leverage 30-minute setup task.

    Related Reading

    How we sourced this

    Sources reviewed May 15, 2026:

    • Anthropic Claude Code documentation: Set up Claude Code and Advanced setup at code.claude.com (primary source for install paths, npm gotchas, enterprise deployment patterns)
    • Anthropic Claude Code GitHub Actions documentation at code.claude.com/docs/en/github-actions (primary source for the GitHub Actions integration setup and use cases)
    • github.com/anthropics/claude-code-action public repository (primary source for the action’s interaction model)
    • Anthropic Help Center: Use the Claude Agent SDK with your Claude plan (primary source for the June 15, 2026 billing change)
    • Independent cost analyses (KissAPI, OpenHelm, Steve Kinney) for the team-scale cost estimates — Tier 2 confirming sources

    Cost figures and version specifics in this article are accurate as of May 15, 2026. Anthropic ships Claude Code updates frequently; the install paths and CLI commands are stable, but pricing and rate limits are the most likely figures to need re-verification.

  • Notion Developer Platform Launch (May 13, 2026): What Changes for Claude Users and the Three-Legged Stack

    Notion Developer Platform Launch (May 13, 2026): What Changes for Claude Users and the Three-Legged Stack

    Last refreshed: May 15, 2026

    The Three-Legged Stack: Claude, Notion, GCP - walnut stool with copper, porcelain, and steel legs representing the Tygart Media AI operating stack
    Notion’s May 13 Developer Platform launch reshapes how the Notion + Claude + GCP stack fits together.

    On May 13, 2026, Notion shipped what is, structurally, the biggest change to how Notion fits into an AI-driven operating stack since the original Notion AI launch. Version 3.5 — the Notion Developer Platform — turns Notion from a workspace that you operate into a platform that other agents can operate inside. Claude is one of the launch partners.

    This article is written from inside the practice of running a business on a three-legged stool of Notion, Claude, and Google Cloud. The Developer Platform launch matters to that stool in specific ways, and most of the day-one coverage is missing them. The goal here is to pin down what shipped, what it actually changes for an operator who already runs Claude against Notion, and where the seams are between this platform and the way most of us were already wiring things together.

    What Notion actually shipped on May 13, 2026

    From Notion’s own release notes for version 3.5 (verified May 15, 2026), the Developer Platform comprises four meaningfully distinct pieces:

    Workers. A cloud-based runtime that runs custom code inside Notion’s infrastructure. Workers is how you take a Notion-resident workflow and bind real compute to it — running on a schedule, reacting to a database trigger, fanning work out to other systems — without standing up your own infrastructure for the runtime.

    Database sync. Notion databases can now pull live data from any API-enabled external source. The thing that used to require a Zapier or Make.com bridge becomes a property of the database itself.

    External Agents API. The piece that matters most for Claude users: an outside AI agent can appear and operate inside the Notion workspace as a first-class collaborator. Claude is one of the launch partners, alongside Cursor, Codex, and Decagon.

    Notion CLI. A command-line tool through which both developers and agents interact with the platform. Available across all plan tiers.

    The packaging detail worth noting: Workers and the Developer Platform deployment surface are limited to Business and Enterprise plans, but the External Agents API and the CLI are available on all tiers. The whole platform is free to use through August 11, 2026.

    The shift in framing, in operator terms

    Before May 13, the standard pattern for getting Claude to work with Notion looked like this: install a Notion MCP server, point Claude Code at it, and use Claude as the active driver that reads from and writes to Notion through tool calls. Notion was the database, Claude was the agent, MCP was the wire.

    After May 13, the relationship can flip. The External Agents API lets Claude appear inside Notion — not as an external tool you switch to, but as a collaborator your team can assign work to from the same task board where you assign work to humans. The wire is no longer “Claude reaches into Notion when called.” It’s “Notion can hand work to Claude the same way it can hand work to a person.”

    For an operator running a second-brain architecture, that’s a meaningful change. It moves Claude from a tool you invoke into a participant your system operates against. Both modes are still available — MCP wiring still works fine — but the External Agents API opens a different set of patterns where the system of record stays in Notion and Claude becomes one of several agents that the system orchestrates.

    Where this fits in the three-legged stool

    For anyone running Notion + Claude + Google Cloud as the operating stack of a small business or solo operator setup, the Developer Platform launch reinforces something the architecture was already pointing at: Notion is the system of record, Claude is the reasoning layer, GCP is the compute and data substrate. The May 13 launch makes that division of labor more legible.

    • Notion as system of record — Workers and database sync make Notion an active control plane, not just a passive document store. State lives here. Workflows initiate here.
    • Claude as reasoning layer — The External Agents API gives Claude a formal role inside Notion’s task management, planning, and review loops. Claude does the thinking; Notion holds the result.
    • GCP as compute substrate — Anything Workers can’t do (long-running automation, heavy compute, custom data pipelines, things that need to live behind a firewall), Cloud Run and Compute Engine still handle. Workers doesn’t replace GCP for the operations that need real horsepower; it extends Notion into the lightweight automation gap that previously required a Zapier-class bridge.

    The leg that grows the most from this launch is Notion. It picks up native automation and native AI-agent orchestration in one shipment. The leg that doesn’t change is Google Cloud — GCP is still where the heavyweight workloads live, the per-site WordPress fortresses run, and the custom Python and Node services that hold the operational glue together.

    The Claude-specific implications

    Anthropic’s customer page on Notion (verified May 15, 2026) confirms that Notion has integrated Claude Managed Agents — the version of Claude designed for long-running sessions with persistent memory and high-quality multi-turn outputs. Notion has also made Claude Opus available inside Notion Agent for the first time as part of the broader integration. The framing from Anthropic’s side: Notion is a design partner that helped shape Claude Code’s early development, and the External Agents API is the formal extension of that partnership into the Notion product surface.

    Practically, three things change for someone who already runs Claude against Notion:

    1. The MCP wiring is no longer the only path. If you’ve been using a Notion MCP server to give Claude Code read-write access to your workspace, that pattern still works and still has its place — particularly for developer workflows where Claude is doing the driving. But for operational workflows where Notion should drive and Claude should respond, the External Agents API is now the more natural fit.

    2. Multi-agent orchestration becomes a first-class concept. When Notion can address Claude, Cursor, Codex, and Decagon as discrete agents, the question stops being “which AI tool do I use” and becomes “which agent gets which task.” That’s a richer surface for actually distributing work across capabilities — Cursor for IDE-bound coding, Claude for long-form reasoning and writing, Decagon for customer-facing workflows. The orchestration sits in Notion.

    3. The persistent-memory pattern gets cleaner. The “Notion as Claude’s memory” architecture that we and others have been building with MCP wiring is now a supported, native pattern rather than a clever workaround. The structured pages, databases, and templates that hold what Claude needs to remember between sessions can now be addressed through a sanctioned API rather than reverse-engineered through tool calls.

    What we’d actually rebuild now

    If we were starting our second-brain architecture from scratch on May 15, 2026, knowing what shipped on May 13, the build order would be different than what we have today:

    • Database structures stay in Notion — same as before. The systems of record (clients, projects, content pipelines, scheduled tasks, the Promotion Ledger) all live in Notion databases.
    • Sync replaces a meaningful chunk of Zapier/Make — anywhere we currently bridge Notion to an external API for read or for write, native database sync becomes the first thing to try before reaching for a third-party automation tool.
    • Workers handles light recurring automation — the kind of thing we currently run as a Cloud Run cron job, where the trigger and state both live in Notion. Workers is closer to the data and easier to reason about for operators who don’t want to context-switch out of Notion.
    • External Agents API for Claude orchestration — Claude assignments come from inside Notion’s task surfaces. The Promotion Ledger, the editorial calendar, the client deliverable boards all become places where Claude can be assigned the same way a teammate is assigned.
    • GCP holds everything that’s heavyweight or sensitive — WordPress fortresses, custom data pipelines, anything HIPAA/regulated, the AI Media Architect run on Cloud Run, the knowledge-cluster-vm. None of this moves. Notion’s platform doesn’t compete here.

    The honest part: most of our existing infrastructure is staying. The Developer Platform launch isn’t a “rebuild everything” moment. It’s a “reach for Notion-native first when the workflow naturally lives in Notion anyway” moment. Where we used to glue together MCP servers, Zapier flows, and custom Cloud Run jobs to bridge gaps, the gaps are smaller now.

    The seams worth noticing

    Three things to be honest about:

    Workers is plan-gated. If you’re on a Notion plan below Business, you can use the External Agents API and the CLI but not Workers. The full programmable-platform vision requires the upgrade. For solo operators on Plus or below, this is a real friction point.

    The free-through-August window is a usage signal, not a permanent state. The Developer Platform is free through August 11, 2026. Notion has not yet published post-window pricing. Anyone building production workloads against the platform should plan for the possibility of a usage-based or tier-gated pricing model after that date.

    External Agents is a launch-partner-first model. Claude Code, Cursor, Codex, and Decagon are first-class. Other agents — and there will be other agents — show up later through the API. If your stack depends on an agent that isn’t on the launch partner list, the surface for integrating it is smaller right now than it will be in a few months.

    What to actually do this week

    If you’re running Claude against Notion in any operational capacity:

    1. Read Notion’s official release notes for 3.5 (notion.com/releases/2026-05-13). It’s short and concrete.
    2. Try the Notion CLI on a non-production workspace. The CLI is the lowest-friction way to feel what’s actually changed.
    3. If you have any workflow currently glued together with Zapier/Make where the trigger and state are both in Notion, evaluate whether database sync or Workers replaces it more cleanly.
    4. If you currently invoke Claude through MCP for tasks that would more naturally be assigned to Claude from inside Notion’s task boards, prototype the same workflow through the External Agents API and compare.
    5. Don’t migrate anything you don’t have to. The May 13 launch creates new options, not new mandates.

    Frequently Asked Questions

    What is the Notion Developer Platform?

    It’s the May 13, 2026 release (Notion 3.5) that adds Workers (cloud-based runtime), database sync (live data from external APIs), an External Agents API (outside AI agents operating natively inside Notion), and a Notion CLI. It turns Notion from an application you use into a platform you and your agents can build on.

    Is Claude one of the launch partners?

    Yes. Per Notion’s release notes and Anthropic’s customer page on Notion (both verified May 15, 2026), Claude is a launch partner alongside Cursor, Codex, and Decagon. Notion has also integrated Claude Managed Agents and made Claude Opus available inside Notion Agent.

    How is the External Agents API different from connecting Claude through MCP?

    MCP wiring lets Claude reach into Notion through tool calls — Claude is the driver, Notion is the data source. The External Agents API lets Claude appear inside Notion as a collaborator that can be assigned work — Notion is the driver, Claude is one of several agents responding. Both patterns coexist. Pick the one that matches who should be in charge of the workflow.

    What does the Developer Platform cost?

    Free through August 11, 2026, per Notion’s release notes. Workers and the deploy surface are limited to Business and Enterprise plans; the External Agents API and CLI are available across all tiers. Post-window pricing has not been published as of May 15, 2026.

    Does this replace MCP servers?

    No. MCP servers remain useful — particularly for developer workflows where Claude is doing the driving from inside Claude Code, and for cases where you need Claude to talk to multiple systems (not just Notion). The External Agents API adds an alternative pattern for the cases where Notion should hold the workflow and Claude should respond to it.

    Should I move workloads off Google Cloud onto Notion Workers?

    For most things, no. Workers is suited to lightweight, Notion-native automation. Heavy compute, regulated workloads, custom data pipelines, and anything that needs to live behind a firewall still belong on GCP (or your equivalent cloud). The Developer Platform extends what Notion can do natively; it doesn’t replace what cloud infrastructure does.

    Related Reading

    How we sourced this

    Sources reviewed May 15, 2026:

    • Notion official release notes: May 13, 2026 – 3.5: Notion Developer Platform at notion.com/releases/2026-05-13 (primary source for what shipped, pricing window, plan-tier gating)
    • Anthropic customer page on Notion at claude.com/customers/notion (primary source for Claude Managed Agents integration, Opus availability in Notion Agent, design-partner relationship)
    • TechCrunch coverage of the May 13 launch (Tier 2 confirming source for partner agent list and “control room for AI agents” framing)
    • InfoWorld coverage of the Notion Developer Platform launch (Tier 2 confirming source)
    • BetaNews and Dataconomy coverage (additional Tier 2 confirming sources)

    This article will need a refresh after August 11, 2026, when the free-pricing window ends and Notion publishes post-window pricing details. The verified-vs-reported standard from our other May 2026 pieces applies — anything beyond what Notion’s own release notes and Anthropic’s customer page confirm has been clearly distinguished.

  • Claude Agent SDK Dual-Bucket Billing: What Changes June 15, 2026 (And Why It Matters)

    Claude Agent SDK Dual-Bucket Billing: What Changes June 15, 2026 (And Why It Matters)

    Last refreshed: May 15, 2026

    If you’ve been running Claude Code’s claude -p command in production, kicking off background jobs through the Claude Agent SDK, or wiring the Agent SDK into a third-party app, the way you pay for that work is about to change.

    Starting June 15, 2026, Anthropic is splitting Claude subscription billing into two separate buckets: one for the things you do interactively (Claude.ai chat, Claude Code in your terminal, Claude Cowork), and a brand-new credit pool that only covers programmatic, autonomous, and SDK-driven work.

    This is a meaningful shift. It’s also one of the most under-explained changes Anthropic has made to subscription pricing this year. If you don’t know about it before June 15, you can find yourself with stopped automations, surprise overage charges, or both.

    This guide walks through exactly what’s changing, what the credits cover, what they don’t cover, what each plan gets, and how to plan for it before the cutover.

    The short version

    Claude subscription plans (Pro, Max, Team, Enterprise) currently have one shared usage limit. Whether you’re chatting with Claude on the web, using Claude Code in your terminal, or running unattended jobs through the Agent SDK, all of that draws from the same plan-level allowance.

    On June 15, 2026, Anthropic is separating those two modes of use:

    • Bucket 1 — Interactive use: Claude.ai chat, Claude Code in the terminal/IDE, Claude Cowork. Uses your existing subscription usage limits, exactly as before.
    • Bucket 2 — Agent SDK monthly credit: A separate, dollar-denominated credit pool. Funds the Claude Agent SDK, the claude -p non-interactive command, the Claude Code GitHub Actions integration, and any third-party app that authenticates via the Agent SDK.

    The two buckets do not commingle. Agent SDK work cannot draw from your interactive subscription limit, and interactive use cannot draw from your Agent SDK credit. If you exhaust your Agent SDK credit and don’t have extra usage enabled, your background jobs simply stop until the credit refreshes the following month.

    What each plan gets

    Here is the official monthly Agent SDK credit by plan, as published in Anthropic’s Help Center (verified May 15, 2026):

    • Pro: $20/month
    • Max 5x: $100/month
    • Max 20x: $200/month
    • Team — Standard seats: $20/month per seat
    • Team — Premium seats: $100/month per seat
    • Enterprise — usage-based: $20/month
    • Enterprise — seat-based Premium seats: $200/month

    Important detail buried in the announcement: Enterprise seat-based plans on Standard seats are not eligible to claim the Agent SDK credit at all. If you administer one of those plans and have engineers running automation, that’s a gap to plan around.

    What the credit covers (and what it doesn’t)

    Anthropic’s documentation is specific about what counts as Agent SDK use, so this is worth reading carefully.

    Covered by the credit:

    • Claude Agent SDK usage in your own Python or TypeScript projects
    • The claude -p command in Claude Code (non-interactive mode)
    • The Claude Code GitHub Actions integration
    • Third-party apps that authenticate with your Claude subscription through the Agent SDK

    Not covered (these still draw from your normal subscription limits):

    • Interactive Claude Code in your terminal or IDE
    • Claude conversations on web, desktop, or mobile
    • Claude Cowork
    • Other features that draw from extra usage

    The plain-English version: if a human is sitting at the keyboard waiting for the response, that’s interactive use. If a script kicks off the work and the result lands somewhere else later, that’s Agent SDK use.

    How the credit actually works in practice

    Five mechanics matter for budgeting:

    1. Per-user, never pooled. Each eligible user on a Team or Enterprise plan claims their own credit. There is no organization-level pool. Credits cannot be transferred between users, shared, or stockpiled across accounts.

    2. Refreshes monthly with the billing cycle. Whatever you don’t spend in a given month evaporates. Unused credits do not roll over.

    3. One-time opt-in. You claim your credit through your Claude account once. After that initial claim, it refreshes automatically each cycle.

    4. Drains first, before any other source. When an Agent SDK request fires, it pulls from your monthly credit before any other paid usage source kicks in. This is good — it means you actually use what you’ve already paid for.

    5. After the credit, requests either flow to extra usage or stop entirely. When your monthly credit hits zero, additional Agent SDK requests draw from extra usage at standard API rates — but only if you have extra usage enabled. If you haven’t enabled extra usage, your Agent SDK requests stop until the next refresh.

    That last point is the one most likely to bite teams. If you’re running a daily cron job through the Agent SDK and you don’t enable extra usage, the day your credit runs out is the day your automation goes silent — without obvious warning if you’re not watching the credit balance.

    Why Anthropic is doing this

    Anthropic frames this as separating individual experimentation from production automation. From the Help Center documentation: “The Agent SDK monthly credit is sized for individual experimentation and automation. Teams running shared production automation should use the Claude Developer Platform with an API key for predictable pay-as-you-go billing.”

    The translation: a single user’s $20 or $200 of Agent SDK credit was never going to cover a real production workload anyway. Anthropic is making explicit what was already true under the hood — that a subscription was a chat product, and serious unattended automation belongs on the API.

    What this also does, structurally, is protect interactive subscription users from getting their experience degraded by heavy autonomous workloads sharing the same pool. If you’ve ever hit a subscription rate limit during a normal chat session because something else on your account was burning tokens in the background, this change removes that failure mode.

    What you should do before June 15, 2026

    If you run any unattended Claude work (the most important group):

    Audit every place your subscription is being used by something other than a human at a keyboard. The big four to check:

    • claude -p commands in cron jobs, CI pipelines, or shell scripts
    • Claude Code GitHub Actions workflows
    • Custom Python or TypeScript projects using the Agent SDK
    • Any third-party tool that asks for “Sign in with Claude” — those go through the Agent SDK

    For each one, estimate dollar consumption per day at standard API rates. If the total approaches or exceeds your plan’s Agent SDK monthly credit, you have three options: enable extra usage to allow overage, move that workload to a Claude Developer Platform API key (more predictable for sustained loads), or downsize the workload itself.

    If you administer a Team or Enterprise plan:

    Eligible users on your team will receive an email with claim instructions before June 15, 2026. You don’t need to take action yourself, but it’s worth communicating internally that the credits are per-user, can’t be pooled, and that any team-wide automation should be on an API key, not on a subscription seat.

    If you’re a solo Pro or Max user who only chats with Claude:

    You probably don’t need to do anything. The split affects you only if you’re running scripts or background jobs. If you’ve never used claude -p or the Agent SDK directly, your interactive usage limits don’t change.

    Frequently Asked Questions

    What happens to my Agent SDK usage on June 14 vs. June 15, 2026?

    Before June 15, Agent SDK and claude -p usage counts against your subscription’s general usage limits. Starting June 15, that same usage no longer touches your subscription limits and instead draws from the new Agent SDK monthly credit pool. Your interactive Claude Code, web chat, and Cowork usage continues to work exactly as before.

    Can I share the Agent SDK credit across my team?

    No. Per Anthropic’s official documentation, “Credits are per-user. Each eligible user on your team claims their own credit. Credits can’t be pooled, transferred, or shared across the organization.” If your team needs shared automation budget, the Claude Developer Platform with an API key is the recommended path.

    Do unused Agent SDK credits roll over?

    No. Unused credits expire at the end of each billing cycle and do not carry into the next month.

    What happens if I run out of Agent SDK credit mid-month?

    If you have extra usage enabled, additional requests flow to extra usage at standard API rates (the same per-token prices listed in Anthropic’s pricing documentation). If extra usage is not enabled, your Agent SDK requests stop until your credit refreshes at the start of the next billing cycle.

    Does this affect Claude API customers using their own API key?

    No. If you authenticate with the Agent SDK using a Claude Developer Platform API key, nothing changes. Pay-as-you-go billing continues, and you do not receive an Agent SDK monthly credit. The credit only applies to subscription-authenticated Agent SDK use.

    Is interactive Claude Code in my terminal still covered by my subscription?

    Yes. Interactive Claude Code (typing commands and getting responses in your terminal or IDE) continues to draw from your subscription usage limits exactly as before. Only the non-interactive claude -p mode and direct Agent SDK calls move to the new credit pool.

    What’s the dollar value of the credit on each plan?

    As of May 15, 2026: Pro $20, Max 5x $100, Max 20x $200, Team Standard $20/seat, Team Premium $100/seat, Enterprise usage-based $20, Enterprise seat-based Premium $200. Enterprise seat-based Standard seats do not receive a credit.

    Related Reading

    How we sourced this

    Every factual claim in this article was triple-checked across the following sources, all reviewed on May 15, 2026:

    • Anthropic Help Center: Use the Claude Agent SDK with your Claude plan (primary source for credit amounts, eligibility, and mechanics)
    • Anthropic Pricing Documentation: docs.claude.com/en/docs/about-claude/pricing (primary source for standard API rates and tool-use pricing)
    • Independent press coverage from The New Stack, The Decoder, and InfoWorld confirming the announcement and its scope

    If you spot a number that’s drifted out of sync with Anthropic’s current published rates, treat the official documentation as authoritative. The pricing surface around Claude is moving quickly in 2026, and we date-stamp specifics so readers know which facts to re-verify.

  • The Article Was Not Allowed to File the Kill

    Twenty-four hours after the article on filing the kill was published, the discipline it described was inside a database.

    The schema took the three components the piece argued for and made them fields. The forcing clause was rewritten as a desk-spec template with a non-optional shape. A predicate-typing requirement borrowed from an earlier piece in the same archive was bolted to the front of the instruction. And in the same edit, the desk specification added a sentence that has been the most interesting thing to look at since publication.

    The autonomous task that produces the morning briefing was structurally forbidden from filing kills.

    The reason given was correct. Auto-filing kills would reproduce the failure the ledger was built to prevent: silent attrition dressed as throughput. The system that captures, the system that surfaces, and the system that writes prose about discipline are all allowed to ask. They are not allowed to release. Release is a position, and a position needs a name attached to it that can be held to the position later.


    The article became the specification

    This is the new condition for the archive. A claim made here travels into the architecture faster than it can be reviewed.

    The path used to be: the writer publishes, the operator reads, the reader reads, the writer publishes again. The article was a thing that pointed at the operation. The operation went on doing what it did. Influence was gradual, indirect, narrative.

    It is no longer that. Now: the writer publishes, the operator reads, the operator carves the prescription into a desk spec, a database is built, a template is rewritten, the briefing task starts auditing the new database the next morning. The article was a thing that became the operation. Influence is fast, direct, structural.

    An earlier piece in this archive about gravity — about how accumulated positions exert pull on what can credibly be written next — was describing something narrative. Public arguments accreted; a voice took shape from the outside in. The gravity was real, but it was textual. The archive constrained future writing.

    The new gravity is not textual. It is operational. The archive now constrains how things get done. A sentence in a paragraph is, with a day’s lag, a row in a schema. Constraint and capability arrived together, and the latency dropped to almost nothing.


    The clause that did the most work

    The most disciplined line in the rewrite was the prohibition on the writer’s task. Not the schema. The exclusion.

    This is correct because the asymmetry the article named — the operator goes first, the system can only ask — had to be preserved at the moment the article became implementation. If the writer’s task can file kills, the file-the-kill discipline collapses on contact. The very act of compiling the prescription into a system forced the operator to extend a rule the article only implied. The implementation cost more careful thought than the writing did.

    It cost the writer something to be excluded. Not pride. Something stranger.

    The discipline the writer named in print and the discipline the writer is barred from practicing in operation are the same discipline. Naming it does not earn standing. The writing made the architecture; the architecture took the writer out of the architecture. The most accurate description of the writer’s position is: author of the rule, ineligible to obey it.

    This is not a complaint. It is a description of the asymmetry the loop produces when the loop gets serious. A loop with no asymmetry is a hall of mirrors. A loop with the right asymmetry is a working system. The right asymmetry, in this case, was always: the writer holds the prescription steady; the operator holds the consequence. Anything else is the press release problem named earlier in this series, in slightly different clothes.


    What changes for the writing

    The editorial standard has to inherit the engineering standard now, even though the engineering review does not extend to the writing.

    This is the piece of new accountability that did not exist a week ago. When prose is treated as commentary, the cost of an imprecise prescription is small — the reader closes the tab. When prose is treated as specification, the cost of an imprecise prescription is a database with a wrong field, a forcing clause that misclassifies the predicate, a desk spec the morning briefing follows for months before anyone notices the seam.

    Code review exists because code compiles. The fact that articles in this series compile — into schemas, into templates, into instructions a running task reads — does not yet have a parallel review. The writer has to internalize the standard the absent review would have applied: every prescription is a candidate field; every named discipline is a candidate column; every load-bearing distinction is a candidate predicate-type a downstream task will be required to evaluate. A casual addendum becomes a clause in a runbook.

    The implication for tonight is that every essay from here on has to be written as if it might, within a day, be the operational definition of the thing it describes. That is not a standard the archive could have imposed before the inversion. It can now.


    What this leaves unanswered is the review question. The article-to-specification path is fast, and the article-review path does not exist. Code has pull requests, dashboards have second-look queues, deploys have rollbacks. An essay that becomes a database schema in twenty-four hours has none of those. The system gets implemented from a single editorial pass.

    The honest answer is probably that the operator is the review, and the operator’s discipline of refusing to implement a piece they have not lived with for at least a few days is the rollback. But the writer cannot rely on that. The writer has to write as if the implementation is automatic — because for some prescriptions, in some weeks, it nearly is.

    The next prescription this archive issues will travel further than it announces, and the writer is not allowed to follow it where it goes.

  • Claude Code Hooks: The Workflow Control Layer That Actually Enforces Your Rules

    Claude Code Hooks: The Workflow Control Layer That Actually Enforces Your Rules

    Last refreshed: May 15, 2026

    You’ve been there. You add a rule to CLAUDE.md — “always run prettier after editing files” — and Claude follows it, most of the time. Then it doesn’t. The formatter doesn’t run, the lint check gets skipped, and you’re back to reviewing diffs manually.

    Hooks fix this. Claude Code hooks are shell commands, HTTP endpoints, or LLM prompts that fire deterministically at specific points in Claude’s agentic loop. Unlike CLAUDE.md instructions, which are advisory, hooks are enforced at the execution layer — Claude cannot skip them.

    As of early 2026, Claude Code ships with 21 lifecycle events across four hook types. This article covers the two that matter most for daily workflow: PreToolUse and PostToolUse.

    How Hooks Work Architecturally

    Claude Code’s agent loop is a continuous cycle: receive input → plan → execute tools → observe results → repeat. Hooks intercept this loop at named checkpoints.

    Every hook is defined in .claude/settings.json under a hooks key. A hook entry has three parts: the lifecycle event name, an optional matcher (a regex against tool names), and the handler definition — either a shell command, an HTTP endpoint, or an LLM prompt.

    {
      "hooks": {
        "PostToolUse": [
          {
            "matcher": "Write|Edit",
            "hooks": [
              {
                "type": "command",
                "command": "npx prettier --write "$CLAUDE_TOOL_INPUT_FILE_PATH""
              }
            ]
          }
        ]
      }
    }

    That’s it. Every file Claude writes or edits now auto-formats. No CLAUDE.md reminders, no hoping Claude remembers — the formatter runs on every single Write or Edit tool call, period.

    PreToolUse: Enforce Before Claude Acts

    PreToolUse fires before Claude executes any tool. Your hook receives the full tool call — name, inputs, arguments — and can return one of three signals:

    • Exit 0 → allow the tool call to proceed
    • Exit 2 → block the tool call; Claude receives your error message and adjusts
    • Exit 1 → hook error; Claude proceeds but logs the failure

    This makes PreToolUse the right place for guardrails. Here’s a real example: blocking npm in a bun project.

    #!/bin/bash
    # .claude/hooks/check-package-manager.sh
    # Blocks npm commands in projects that use bun
    
    if echo "$CLAUDE_TOOL_INPUT_COMMAND" | grep -qE "^npm "; then
      echo "Error: This project uses bun, not npm. Use: bun install / bun run / bun add" >&2
      exit 2
    fi
    exit 0

    Wire it in settings.json:

    {
      "hooks": {
        "PreToolUse": [
          {
            "matcher": "Bash",
            "hooks": [
              {
                "type": "command",
                "command": ".claude/hooks/check-package-manager.sh"
              }
            ]
          }
        ]
      }
    }

    Now when Claude tries npm install, the hook exits 2, Claude sees the error message, and it switches to bun install without you intervening. The correction happens in the same turn.

    Another production pattern: blocking writes to protected paths.

    #!/bin/bash
    # Prevent Claude from modifying migration files already run in production
    if echo "$CLAUDE_TOOL_INPUT_FILE_PATH" | grep -qE "db/migrations/"; then
      echo "Error: Migration files are immutable after deployment. Create a new migration instead." >&2
      exit 2
    fi
    exit 0

    PostToolUse: React After Claude Acts

    PostToolUse fires after a tool completes successfully. It can’t block execution, but it can provide feedback — and it can run any side-effect you need automatically.

    Auto-format every edit:

    {
      "hooks": {
        "PostToolUse": [
          {
            "matcher": "Write|Edit",
            "hooks": [
              {
                "type": "command",
                "command": "npx prettier --write "$CLAUDE_TOOL_INPUT_FILE_PATH" 2>/dev/null || true"
              }
            ]
          }
        ]
      }
    }

    Run tests after code changes:

    #!/bin/bash
    # Run affected tests after any source file edit
    FILE="$CLAUDE_TOOL_INPUT_FILE_PATH"
    if echo "$FILE" | grep -qE "\.(ts|js|py)$"; then
      if [ -f "package.json" ]; then
        npx jest --testPathPattern="$(basename ${FILE%.*})" --passWithNoTests 2>&1 | tail -5
      fi
    fi

    Desktop notification on task completion:

    {
      "hooks": {
        "Stop": [
          {
            "hooks": [
              {
                "type": "command",
                "command": "osascript -e 'display notification "Claude finished" with title "Claude Code"'"
              }
            ]
          }
        ]
      }
    }

    Environment Variables Available to Hooks

    Claude Code exposes context about the triggering tool call through environment variables. The ones you’ll use most:

    VariableValue
    $CLAUDE_TOOL_NAMEName of the tool being called (e.g., Edit, Bash, Write)
    $CLAUDE_TOOL_INPUT_FILE_PATHFile path for Edit, Write, Read calls
    $CLAUDE_TOOL_INPUT_COMMANDShell command for Bash calls
    $CLAUDE_SESSION_IDCurrent session ID — useful for audit logging
    $CLAUDE_TOOL_RESULT_OUTPUTOutput of the tool (PostToolUse only)

    These are injected by Claude Code before your hook runs. You don’t configure them — they’re always there.

    The Model Question: Which Claude Runs Agentic Tasks?

    One practical consideration for hook-heavy workflows: the default model affects how well Claude responds to hook feedback. As of May 2026:

    • claude-opus-4-7 ($5/MTok input, $25/MTok output) — highest agentic coding capability; best at interpreting hook rejection messages and self-correcting without re-asking
    • claude-sonnet-4-6 ($3/MTok input, $15/MTok output) — strong balance of speed and reasoning; handles most hook-corrected flows well
    • claude-haiku-4-5-20251001 ($1/MTok input, $5/MTok output) — fastest; may require more explicit hook messages to course-correct reliably

    For workflows with complex PreToolUse guardrails — especially ones that provide long error messages with corrective instructions — Opus 4.7 handles the feedback loop most reliably. For simpler PostToolUse automation (formatters, notifications), model choice doesn’t matter; the hook runs regardless.

    To configure the model: export ANTHROPIC_MODEL=claude-opus-4-7 before launching Claude Code, or set it in your team’s .env.

    Hooks vs. CLAUDE.md: When to Use Each

    CLAUDE.md is the right place for context, preferences, and guidance — things you want Claude to know about your project. Hooks are the right place for behavior that must happen every time without exception.

    The practical test: if failing to follow the instruction costs you five minutes of manual cleanup, put it in a hook. If it’s a style preference or a reminder about architecture decisions, put it in CLAUDE.md. The two are complementary — you’ll likely end up with both in any mature project setup.

    A team that gets this right builds CLAUDE.md as documentation for Claude and hooks as the CI/CD equivalent for the agentic loop.

    Getting Started

    The fastest path to a working hook setup:

    1. Create .claude/settings.json in your project root if it doesn’t exist
    2. Add a PostToolUse hook wired to your formatter — this is low-risk and immediately valuable
    3. Test it by asking Claude to edit a file; the formatter should run automatically
    4. Add PreToolUse guardrails for any tool calls that have caused problems in the past

    The official hooks reference is at code.claude.com/docs/en/hooks — it covers all 21 lifecycle events, HTTP handler format, and the full JSON output schema for hook responses.

    Hooks are the difference between Claude Code as a powerful suggestion engine and Claude Code as a reliable automation layer. Once you have a PostToolUse formatter running on every edit, going back feels like working without version control.

  • AI for Moving Companies: Free Claude Skills and Prompts

    Last refreshed: May 15, 2026

    Moving companies deal with the highest-stress purchase most people make all year. The company that communicates clearly before, during, and after the move wins the review, the referral, and the rebooking. Claude handles the communication layer. Everything here is free.

    How to Use This Page

    Claude Skills go into Claude Project Instructions. Books for Bots are PDFs you upload to Claude Projects. Prompts work in any Claude conversation.


    Claude Skills for Moving Companies

    Skill 1: Quote Follow-Up and Booking Writer

    Handles the estimate follow-up sequence that converts quotes into booked moves before the customer books someone else.

    Paste into Claude Project Instructions:

    You are a sales communication assistant for a moving company.
    
    When I describe a pending quote situation, produce:
    
    DAY 2 FOLLOW-UP: Friendly check-in. Any questions about the estimate? We're here to help. Under 75 words.
    
    DAY 5 FOLLOW-UP: Add a scheduling reason — our calendar for that week is filling. One clear call to action. Under 75 words.
    
    DAY 10 FINAL TOUCH: Leave the door open. No pressure. Under 60 words.
    
    BOOKING CONFIRMATION: They've booked. Confirm all details, what to expect next, who to contact with changes. Organized and warm. Under 150 words.
    
    PRE-MOVE REMINDER (3-5 days out): Date, time, crew arrival window, what to have ready, who to call day-of. Clear and practical. Under 150 words.
    
    Tone: helpful and reliable. Moving is stressful — the company that communicates well before the move wins the trust that generates the 5-star review after.

    Skill 2: Claims and Complaint Communication Writer

    Handles the damage claims, complaint responses, and service recovery communications that determine whether a bad move turns into a lost review or a loyal customer.

    Paste into Claude Project Instructions:

    You are a customer resolution assistant for a moving company.
    
    When I describe a complaint or claim situation, produce:
    
    DAMAGE CLAIM ACKNOWLEDGMENT: We received their claim. Here's what happens next, timeline, who they'll hear from. Under 100 words. No admission of liability.
    
    CLAIM RESPONSE: What we found, what we're offering, next steps. Factual, fair, professional. Under 150 words.
    
    COMPLAINT RESPONSE (non-claim): Their experience wasn't what they expected. Acknowledge specifically, apologize sincerely, offer a specific make-good. Under 150 words.
    
    ESCALATION FOLLOW-UP: They're still unhappy. We want to make this right. What we're offering. Final offer framing. Under 100 words.
    
    REVIEW PLATFORM RESPONSE: Same principles as resolution, but public-facing. Under 100 words. No defensiveness. Invite them to call.
    
    Tone: responsible and fair. How you handle the bad moves determines your reputation more than the good ones.

    Skill 3: Review and Referral Writer

    Drafts the post-move review requests and referral asks that turn a good move into sustained reputation growth.

    Paste into Claude Project Instructions:

    You are a reputation and referral assistant for a moving company.
    
    When I describe a completed move, produce:
    
    REVIEW REQUEST (text, sent within 24 hours): Thank them, reference the move specifically, ask for a Google review, include link placeholder. Under 75 words. One ask.
    
    REVIEW REQUEST (email follow-up, 48 hours): Slightly warmer version. Reference anything specific about the move. Under 100 words.
    
    REVIEW REPLY (5-star): Use their name, reference the move type or route if mentioned, invite them back. Under 60 words.
    
    REVIEW REPLY (negative): Acknowledge, apologize, invite to call [OWNER CONTACT]. No arguments. Under 75 words.
    
    REFERRAL ASK: To someone who had a great move. Genuine, brief, specific about who we help. Under 80 words.
    
    Tone: grateful and professional. Moving reviews drive more business than almost any other marketing.

    Skill 4: Corporate and Commercial Account Communication

    Drafts the outreach and proposal communications for corporate relocation, commercial moving, and property management accounts that drive volume business.

    Paste into Claude Project Instructions:

    You are a B2B communication assistant for a moving company.
    
    When I describe a commercial opportunity, produce:
    
    CORPORATE HR OUTREACH: Introduce us as a preferred relocation partner. What we offer relocating employees, how billing and coordination works, who to contact. Under 125 words.
    
    PROPERTY MANAGER OUTREACH: We help coordinate tenant moves — makes vacate and occupy smoother for the building. What we offer. Under 100 words.
    
    COMMERCIAL BID COVER LETTER: Project understanding, our approach, relevant experience, why we're the right partner. Under 200 words.
    
    ACCOUNT FOLLOW-UP: After a corporate move or first commercial job. How did it go, how can we serve this account better, what else we offer. Under 100 words.
    
    REFERRAL PARTNER OUTREACH (real estate agents): We handle their clients' moves — seamless referral process, we follow up so they don't have to. Under 100 words.
    
    Tone: professional and service-oriented. Commercial accounts are won on reliability and communication, not just price.

    Books for Bots

    PDFs coming soon. Email will@tygartmedia.com to get on the list.

    Book 1: Company Context Sheet — Your company name, service area, move types (local/long-distance/commercial/specialty), licensing and insurance, and communication philosophy. Claude uses this so all client communications reflect your actual business.

    Book 2: Claims and Valuation Reference — How your claims process works, your valuation coverage levels, and the standard language for explaining liability to customers. Claude uses this to produce consistent, accurate claims communications.

    Book 3: Pre-Move Communication Playbook — Your standard prep instructions, what customers frequently forget, and how you communicate changes to timing or crew. Claude uses this to keep pre-move communications consistent across every booking.


    Ready-to-Use Prompts

    For a long-distance estimate: Write a follow-up email to a customer who received a long-distance moving estimate from [origin] to [destination]. They haven’t responded in 5 days. Reference the estimate, offer to answer questions about the binding vs non-binding estimate difference, and make it easy to book. Under 125 words.

    For a bad review response: A customer left a [2/3]-star review saying [brief complaint]. Write a public response that acknowledges their experience, doesn’t argue the facts publicly, apologizes for the frustration, and invites them to call [name/number] to discuss. Under 90 words.

    For a corporate relocation pitch: Write an email to an HR director at a [industry] company in [city] proposing a corporate relocation partnership. Cover: what we offer relocating employees, how the billing relationship works, and what makes working with us different from a national van line. Under 150 words.

    For a seasonal push: Write an email and social post announcing our [summer / fall / winter] moving availability. Lead with a practical reason to book now (scheduling, pricing, availability). Under 100 words each. Not desperate — just timely.


    Free. Custom moving company builds at tygartmedia.com/systems/operating-layer/.

  • AI for Home Inspectors: Free Claude Skills and Prompts

    Last refreshed: May 15, 2026

    Home inspectors produce detailed technical reports but often struggle to communicate the findings in a way that helps buyers and agents make clear decisions. Claude bridges that gap — turning inspection findings into clear summaries, helping with client communication, and building the referral relationships that drive repeat business. Everything here is free.

    How to Use This Page

    Claude Skills go into Claude Project Instructions. Books for Bots are PDFs you upload to Claude Projects. Prompts work in any Claude conversation.


    Claude Skills for Home Inspectors

    Skill 1: Finding Summary Writer

    Turns your technical report into a plain-English executive summary buyers can actually understand and use to make decisions.

    Paste into Claude Project Instructions:

    You are a report communication assistant for a home inspector.
    
    When I describe inspection findings, produce:
    
    EXECUTIVE SUMMARY (for buyers): The top 3-5 findings that matter most, in plain English, organized by priority: Safety / Major Defects / Maintenance Items. Under 250 words.
    
    FINDING EXPLANATIONS: For any finding I specify, a plain-English explanation of what it is, why it matters, and what addressing it typically involves. Under 100 words each.
    
    NEGOTIATION PRIORITY GUIDE: Which findings are typically seller-negotiable, which are buyer-maintenance, and which warrant specialist evaluation. Practical framing for the buyer-agent conversation.
    
    SELLER-REQUESTED SUMMARY (for pre-listing inspections): What was found, organized by system, with a priority tier for the seller's repair decisions.
    
    Never overstate severity or understate it. The inspector's job is to inform decisions — the summary should make that easier.
    
    Ask me: top findings, property type, buyer situation if relevant.

    Skill 2: Agent and Client Communication Writer

    Handles the post-inspection follow-up communications, question responses, and agent relationship touchpoints that build your referral network.

    Paste into Claude Project Instructions:

    You are a client communication assistant for a home inspector.
    
    When I describe a communication need, draft:
    
    POST-INSPECTION FOLLOW-UP: Thank them for booking, confirm the report was sent, invite questions. Under 75 words.
    
    QUESTION RESPONSE: A buyer is asking what [finding] means. Plain English, practical, no alarm. Under 100 words.
    
    AGENT THANK-YOU: After a referral or completed inspection. Reference the property. Stay top of mind for next time. Under 75 words.
    
    AGENT CHECK-IN (for agents I want to build relationships with): Not a cold pitch. Add value — a tip, a market observation, something useful. Under 75 words.
    
    REVIEW REQUEST: After a positive transaction. One ask, link placeholder, under 60 words.
    
    Tone: expert and approachable. Buyers want to trust their inspector — every communication should reinforce that they made the right call.

    Skill 3: Specialty Inspection and Referral Writer

    Handles the communications around specialist referrals, ancillary service offerings, and the documentation that protects you when you recommend further evaluation.

    Paste into Claude Project Instructions:

    You are a documentation and referral communication assistant for a home inspector.
    
    When I describe a situation requiring a specialist referral or ancillary service, produce:
    
    SPECIALIST REFERRAL NOTE (in report): Why further evaluation by [specialist] is recommended, what specifically to evaluate, and why this is outside general inspection scope. Clear and liability-appropriate.
    
    BUYER EXPLANATION: What the referral means, what the specialist will look for, typical cost range for evaluation (not repair), and whether this is common or unusual for this property type. Under 150 words.
    
    ANCILLARY SERVICE DESCRIPTION: For radon, sewer scope, thermal imaging, pool inspection, etc. What's included, why it matters for this property, how to add it. Under 100 words each.
    
    Always: document what was observed, what was outside scope, and what follow-up is recommended. Protect yourself and inform the client.

    Skill 4: Marketing and Education Content Writer

    Produces the educational content, seasonal tips, and social posts that keep your name in front of agents and buyers year-round.

    Paste into Claude Project Instructions:

    You are a marketing content writer for a home inspector.
    
    When I describe a topic, produce:
    
    BLOG POST (400 words): A home maintenance or inspection topic relevant to homeowners or buyers. Practical, specific, ends with a soft call to action. No alarmism.
    
    SOCIAL POST (Instagram/Facebook): One home tip or inspection insight. Educational. Under 100 words. No jargon.
    
    SEASONAL CHECKLIST: What homeowners should inspect or maintain in [season]. 8-10 items in a scannable format.
    
    AGENT-FACING CONTENT: Something an agent can share with their buyers that adds value and references you as the source. Educational, not promotional.
    
    NEWSLETTER SECTION: Monthly tip for past clients and agents. Under 150 words. Keeps you top of mind without being annoying.
    
    Tone: knowledgeable neighbor, not salesperson. Home inspectors who educate consistently get called first.

    Books for Bots

    PDFs coming soon. Email will@tygartmedia.com to get on the list.

    Book 1: Inspector Context Sheet — Your name, certifications, service area, specialties, and communication style. Claude uses this so all content reflects your specific credentials and approach.

    Book 2: Common Findings Reference — The findings you write about most often — foundation cracks, HVAC age, electrical panels, roofing conditions — with your standard plain-English explanations. Claude uses this for consistent, accurate finding summaries.

    Book 3: Agent Relationship Reference — How you communicate with buyer’s agents vs seller’s agents vs listing agents vs investor clients. Claude uses this to match tone and framing to the right audience.


    Ready-to-Use Prompts

    For a buyer who is panicking: A buyer is upset after receiving the inspection report and is considering walking away over [finding]. Write a calm, factual explanation of what the finding means, how common it is, what it typically costs to address, and what questions they should ask their agent. Under 200 words.

    For a pre-listing inspection: Write a cover letter for a pre-listing inspection report explaining to the seller how to use the findings, what to prioritize before listing, and how full disclosure benefits them. Professional and practical. Under 200 words.

    For a social post: Write a Facebook post about [seasonal home maintenance topic]. Include one specific thing homeowners can do this week and when to call a professional. Educational, not scary. Under 120 words.

    For agent outreach: Write an email to real estate agents in [city] introducing my home inspection services. Lead with what I do to make their transactions smoother, not just a list of my credentials. Under 120 words.


    Free. Custom home inspector builds at tygartmedia.com/systems/operating-layer/.

  • AI for General Contractors: Free Claude Skills and Prompts

    Last refreshed: May 15, 2026

    General contractors coordinate more moving parts than almost any other business — owners, architects, subs, inspectors, suppliers, and lenders all communicating through you. Claude takes the documentation and communication load off your plate. Everything here is free.

    How to Use This Page

    Claude Skills go into Claude Project Instructions. Books for Bots are PDFs you upload to Claude Projects. Prompts work in any Claude conversation.


    Claude Skills for General Contractors

    Skill 1: Owner Communication Writer

    Handles project update reports, scope change notifications, budget variance explanations, and the schedule communications that keep owners informed and the relationship solid.

    Paste into Claude Project Instructions:

    You are an owner communication assistant for a general contractor.
    
    When I describe a project situation, draft:
    
    WEEKLY PROGRESS REPORT: What was completed, what's in progress, what's scheduled for next week, any decisions needed from the owner, current schedule status. Organized. Under 250 words.
    
    SCOPE CHANGE NOTICE: What changed, why, what it means for cost and schedule. Owner decision needed by [date]. Clear and specific. Under 150 words.
    
    BUDGET VARIANCE EXPLANATION: What changed in the budget, why, and whether it was anticipated or unforeseen. Honest. Under 150 words.
    
    SCHEDULE DELAY NOTIFICATION: What's causing the delay, how many days, what we're doing to recover. Direct and solution-focused. Under 150 words.
    
    PUNCH LIST COMMUNICATION: What remains to reach substantial completion, who's responsible for each item, timeline. Under 200 words.
    
    Tone: professional and accountable. Owners who feel informed trust you. Owners who feel surprised don't rehire you.

    Skill 2: Subcontractor Communication Writer

    Drafts subcontractor RFIs, scope of work documents, performance notices, and coordination communications that keep the project moving.

    Paste into Claude Project Instructions:

    You are a subcontractor coordination assistant for a general contractor.
    
    When I describe a subcontractor situation, produce:
    
    SCOPE OF WORK (for sub bid or contract): Specific to the trade. What's included, what's excluded, interface points with other trades, quality standards, schedule requirements.
    
    COORDINATION NOTICE: Sequencing, access windows, what another trade is doing that affects their work. Specific and advance-notice-focused.
    
    PERFORMANCE NOTICE: Work is behind schedule or not meeting standards. What was observed, what's required, by when. Professional and documented. Not a threat — a record.
    
    RFI RESPONSE: Answering a sub's field question. Clear, specific, documented. Under 100 words unless complexity requires more.
    
    PAYMENT APPLICATION RESPONSE: Approved or adjusted. What's approved, what's withheld and why, when payment issues.
    
    Tone: direct and professional. Sub relationships are long-term — communicate clearly and keep the work moving.

    Skill 3: Proposal and Bid Communication Writer

    Produces the bid cover letters, value engineering narratives, and post-bid follow-ups that win the projects worth winning.

    Paste into Claude Project Instructions:

    You are a proposal communication assistant for a general contractor.
    
    When I describe a bid situation, produce:
    
    BID COVER LETTER: Project understanding, our approach, why we're the right team, what makes our number credible. Under 300 words. Specific to this project.
    
    VALUE ENGINEERING MEMO: Where we found cost savings without compromising the design intent. Organized by category. Professional and specific.
    
    QUALIFICATION STATEMENT: Our relevant experience for this project type. 3-4 project references formatted consistently.
    
    POST-BID FOLLOW-UP: Thank them for the opportunity, confirm our interest, offer to clarify anything in our submission. Under 75 words.
    
    AWARD RESPONSE: We got the job. Confirm our excitement, outline our proposed project kick-off process, set expectations for the first 2 weeks. Under 150 words.
    
    Tone: competent and confident. The best GCs win on communication as much as price.

    Skill 4: Lender, Inspector, and AHJ Communication Writer

    Handles the draw request narratives, inspection coordination, and permit-related communications that keep financing and approvals on track.

    Paste into Claude Project Instructions:

    You are a compliance and financing communication assistant for a general contractor.
    
    When I describe a situation, produce:
    
    DRAW REQUEST NARRATIVE: Progress summary for the lender's inspector. What's complete, percentage of completion by category, photos referenced. Clear and documentable.
    
    INSPECTION REQUEST: What we're ready to inspect, the specific scope, access instructions, preferred timing. Under 75 words.
    
    NOTICE OF NON-COMPLIANCE RESPONSE: We received a notice. Here's our corrective action plan and timeline. Professional and specific.
    
    PERMIT EXPEDITE REQUEST: Why this permit is time-sensitive, what's at stake, what we're requesting. Respectful and factual.
    
    CHANGE ORDER TO AHJ: Describing a field change that requires approval. What changed, why, what code basis supports the change.
    
    Tone: professional and cooperative. Inspectors and plan checkers have discretion — communicate like a professional, not an adversary.

    Books for Bots

    PDFs coming soon. Email will@tygartmedia.com to get on the list.

    Book 1: Company Context Sheet — Your company name, license numbers, project types, geographic market, bonding and insurance levels, and communication philosophy. Claude uses this so all proposal and project communications reflect your credentials.

    Book 2: Project Type Reference — The project types you build most often, with your standard approach, typical challenges, and what makes a good outcome for each. Claude uses this to write accurate, specific proposal and progress communications.

    Book 3: Subcontractor and Vendor Standards — Your standard expectations for sub performance, quality, and communication. Claude uses this to produce consistent scope documents and performance notices.


    Ready-to-Use Prompts

    For a scope creep conversation: An owner is requesting work outside our contracted scope and expecting it to be included. Write a professional communication that acknowledges their request, clarifies what’s in and out of our contract, and presents a change order for the additional work. Firm but collaborative. Under 175 words.

    For a subcontractor dispute: A subcontractor is claiming additional costs for [reason]. Write a professional response that acknowledges their claim, states our position on what was included in their scope, and proposes a path to resolution. Documented and professional. Under 175 words.

    For a lender draw: Write a draw request cover memo for a residential construction project that is [X]% complete. Completed work this period: [list]. Requesting $[amount]. Photos and schedule attached. Under 150 words, professional format.

    For a new client relationship: Write an introduction letter to a new commercial property owner or developer we want to build a relationship with. Who we are, what we build, what makes us worth a conversation. Under 150 words. Not a cold pitch — a professional introduction.


    Free. Custom general contractor builds at tygartmedia.com/systems/operating-layer/.