---
title: "Ai-Agents"
url: https://www.grahambrooks.com/tags/ai-agents/
---

# Ai-Agents

- [infographic v2026.10.1: the first release, with animated SVG explainers from a one-line request](https://www.grahambrooks.com/post/infographic-first-release/index.md) (2026-10-25): infographic v2026.10.1 is the first release of a Claude Code skill and Rust CLI that turn a one-line request into an animated, checked SVG explaining a technical pattern, with prebuilt binaries for macOS and Linux.
- [symgraph v2026.10.18: a vendored minified file stops topping your dependency graph, and an export for analytics](https://www.grahambrooks.com/post/symgraph-2026-10-18-export/index.md) (2026-10-19): symgraph v2026.10.18 keeps generated and minified code out of the dependency graph and adds `symgraph export`, which writes coupling and per-commit change-impact records as JSON Lines.
- [When an agent can already write the file, what is an MCP server for?](https://www.grahambrooks.com/post/what-is-an-mcp-server-for/index.md) (2026-10-04): If an agent can already write your tool's file format, an MCP server has to give it something the file can't: live discovery, validation against the real system, a preview of the result, and a save with rules. Teleplot's endpoint was built only because it passed that gate, and it passed more narrowly than I first thought. Most MCP servers should fail it and be a file format plus a linter.
- [Stop declaring what you can already read (myspec)](https://www.grahambrooks.com/post/stop-declaring-what-you-can-read/index.md) (2026-09-27): Once an agent's toolchain has enough moving parts (plugins, skills, MCP servers, modes, hooks), convention and hope stop being enough, and it needs the discipline of a real system: versioned migrations, deterministic gates, and one source of truth per fact. In myspec, the clearest example was a mode flag the developer had to set by hand. It drifted, and the proposed fix is to read the mode from where it already lives.
- [Letting an agent read your mail: split the reader from the network](https://www.grahambrooks.com/post/letting-an-agent-read-your-mail/index.md) (2026-09-26): An agent that reads your inbox is reading text written by strangers, so whether the model behaves is the wrong question. The useful question is what the process holding that text can do. In the twin's mail reader, the answer is enforced by the OS rather than asked for in a prompt: the one process that can see Mail can't touch the network, and the model that ranks the mail has no tools. Some things still get through, and they're worth naming.
- [Cadence is a budget line: what scheduled automation cost a private repo](https://www.grahambrooks.com/post/cadence-is-a-budget-line/index.md) (2026-09-26): My GitHub Actions budget ran out, and development CI wasn't what used it up. Automation that mostly found nothing to do spent it. In a private repository, how often a scheduled workflow wakes up is a cost decision rather than a latency decision, and automation should be designed around what each wake-up costs.
- [Making a Code Graph Admit What It Doesn't Know (symgraph)](https://www.grahambrooks.com/post/symgraph-admitting-what-it-does-not-know/index.md) (2026-09-22): A code-intelligence index answered every question it was asked. Sixteen percent of its call edges pointed at things that cannot be called, its truncated lists said nothing about being truncated, and one of its tools had never worked at all. The month's work was almost entirely about replacing confident answers with calibrated ones.
- [Building Your Own Tools](https://www.grahambrooks.com/post/building-your-own-tools/index.md) (2026-09-07): Agents made it cheap to build software. The interesting consequence isn't that you can build more of it — it's that you can build software for exactly one known user, and software with one known user gets to delete its entire configuration layer.
- [Giving the Consumer a Representative in the Working Tree (brake)](https://www.grahambrooks.com/post/brake-exit-criteria-for-the-consumer/index.md) (2026-08-24): Every signal an agent uses to decide it is finished — compiler, tests, linter — is a question about the repository it is standing in. The consumers of the API it just changed are somewhere else entirely. brake makes 'who does this break?' answerable from files already in the tree, with no network, no broker, and no running service.
- [Architecture the Agentic Loop Can Actually Check (tropism)](https://www.grahambrooks.com/post/tropism-architecture-in-the-agentic-loop/index.md) (2026-08-08): Coding agents get fast feedback from compilers, tests, and linters — all of which are local. None of them knows the shape of the system. Tropism is an attempt to close that gap: one architecture ruleset, ten languages, no build, no network, sound enough to block a commit.
- [A Control Plane for a Personal GitHub Account](https://www.grahambrooks.com/post/automating-github-account-management/index.md) (2026-07-25): Running 120+ personal repositories as a self-sustaining estate: config-as-code, scheduled workflows, a deliberately non-admin GitHub App, and a bounded role for the model.
- [Running Local MCP Servers Without a Node or Python Runtime (bx)](https://www.grahambrooks.com/post/bx-lighter-mcp-servers/index.md) (2026-05-23): MCP server configs across the ecosystem default to npx . That quietly forces a Node runtime onto every machine that wants to run a native binary tool. bx is the missing primitive for the other case. I spent the weekend…
- [The Agentic Inner Loop: Sensors, Substrate, and Skills for Polyglot Development](https://www.grahambrooks.com/post/inner-loop-agentic-development/index.md) (2026-05-23): What the developer inner loop becomes when a coding agent is doing most of the iteration — and the substrate, sensors, codemods, and skills you need to build for it.
- [Team Code Review Without the Server: a CLI (casual-review)](https://www.grahambrooks.com/post/casual-review-cli-team-code-review/index.md) (2026-04-30): Most code review tools want to be a service. The interesting question is what falls out when you refuse to run one — and use git itself as the sync layer instead. I’ve spent the last few weeks building casual-review…
- [Code Review After the Pull Request](https://www.grahambrooks.com/post/code-review-after-the-pull-request/index.md) (2026-04-26): The pull request was built for a world where humans wrote most of the code. We don’t live there anymore. The pull request as a unit of review is a recent invention. GitHub shipped it in 2008. Before that, code…
- [A Code Knowledge Graph for Review, Not Generation](https://www.grahambrooks.com/post/code-knowledge-graph-for-review/index.md) (2026-04-26): The same graph that helps an agent write code can help a reviewer trust it. Almost nobody is using it that way. Every AI coding tool I’ve looked at in the last eighteen months — including codemap now called symgraph—…
- [A Rust-Native Architecture Toolchain: forge, puml, and adoc](https://www.grahambrooks.com/post/rust-native-architecture-toolchain/index.md) (2026-04-26): A Rust-Native Architecture Toolchain: forge, puml, and adoc Replacing the JVM and Ruby pieces of the architecture documentation stack with single static binaries Most of the tools I reach for when documenting architecture were built in another era. PlantUML wants…
- [Sandboxing AI Coding Agents: Why Isolation Matters](https://www.grahambrooks.com/post/ai-coding-isolation/index.md) (2026-03-22): The more context and tools an AI coding agent has access to, the better it performs. But more power means more risk. How do we harness the full capability of AI coding assistants while keeping our systems safe? The Problem:…
- [Building a Code Knowledge Graph for AI Agents](https://www.grahambrooks.com/post/building-a-code-knowledge-graph-for-ai-agents/index.md) (2026-02-15): Building a Code Knowledge Graph for AI Agents How I rebuilt codegraph in Rust to give AI coding assistants a semantic map of your codebase There’s a fundamental tension at the heart of agentic coding today. AI models are remarkably…
- [Vibe Coding](https://www.grahambrooks.com/post/vibe-coding/index.md) (2026-01-25): Vibe Coding is an innovative approach to software development that emphasizes creativity, flow, and emotional engagement in the coding process. It encourages developers to tap into their intuition and passion for coding, fostering a more enjoyable and productive work environment.…
- [Pair Programming, Mob Programming, and AI Co-Pilots: A Comparative Analysis](https://www.grahambrooks.com/post/2023-07-05-pair-mob-programming-ai-co-pilots/index.md) (2023-07-05): Hello there, fellow tech enthusiasts! Today, we dive into a stimulating topic that has been stirring the world of software development: a comparison between pair programming, mob programming, and working with AI co-pilots. Let’s explore how these methodologies play out…
- [Working in Interesting Times: Generative AI as Disruptive Tech in Software Development](https://www.grahambrooks.com/post/2023-07-03-interesting-times-gen-ai/index.md) (2023-07-03): As someone delving into the world of software development, the journey seemed smooth and set. With incremental releases, continuous integration, and agile methodologies, it appeared the path was that of constant and iterative improvement. But just as I started getting…
