Skip to content

Add essay: Every tool ships an agent now#15

Merged
khaliqgant merged 1 commit into
mainfrom
every-tool-ships-an-agent
May 15, 2026
Merged

Add essay: Every tool ships an agent now#15
khaliqgant merged 1 commit into
mainfrom
every-tool-ships-an-agent

Conversation

@khaliqgant
Copy link
Copy Markdown
Member

Summary

  • New essay analyzing five vendor approaches to shipping AI agents: Sentry Junior (open-source runtime), PostHog AI (narrow in-app), CodeRabbit (expanding from review gate), Notion (workspace hub), and PDERO phase-specific agents
  • Four custom SVG Scene figures (VendorSiloFigure, JuniorPluginFigure, AgentScopeFigure, PhaseAgentFigure) with alternating left/right layout
  • Card illustration (EveryToolAgentArt) with hub-and-spoke pattern
  • Embedded David Cramer tweet as opening context
  • HTML comparison table covering all five patterns

SEO/GEO audit

  • Meta description: 138 chars (under 160 limit), keyword-rich
  • Article schema: headline, description, datePublished, dateModified, author, publisher
  • BreadcrumbList schema: Home > Essays > Post
  • OG + Twitter cards: title, description, 1200x630 dynamic image
  • Canonical URL: set with trailing slash
  • robots.txt: all AI bots allowed (GPTBot, ChatGPT-User, PerplexityBot, ClaudeBot, anthropic-ai)
  • Sitemap: post included automatically
  • llms.txt: entry added for AI search engine discovery
  • Factual density: statistics added (7 plugin packages, 25+ tools, 2M+ repos, 13M+ PRs, 1M+ custom agents)
  • Internal linking: /posts/agent-moves-first
  • External links: all companies, repos, blog posts, and guides linked
  • Heading hierarchy: H1 > H2 (×5) > H3 (×7)

Notion

Test plan

  • Verify post renders at /posts/every-tool-ships-an-agent
  • Check all four Scene figures render with sticky scroll behavior
  • Verify card illustration appears on homepage
  • Confirm tweet embed loads
  • Check HTML table renders styled correctly
  • Validate OG image at /posts/every-tool-ships-an-agent/opengraph-image
  • Test Google Rich Results with rendered URL

🤖 Generated with Claude Code

Compares five vendor approaches to AI agents: Sentry's Junior
(open-source runtime), PostHog (narrow in-app assistant), CodeRabbit
(expanding from review gate), Notion (workspace as coordination hub),
and phase-specific agents (PDERO lifecycle framework).

Includes four custom SVG figures, card illustration, comparison table,
embedded tweet, and SEO/GEO optimizations (138-char meta description,
Article + BreadcrumbList schema, llms.txt entry, statistics for factual
density).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 15, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: df357a42-8b0b-4256-afe6-32ed96382e86

📥 Commits

Reviewing files that changed from the base of the PR and between da045b1 and 4b01cbe.

📒 Files selected for processing (6)
  • components/card-illustrations.tsx
  • components/mdx/figures.tsx
  • components/mdx/mdx-components.tsx
  • content/posts/every-tool-ships-an-agent.mdx
  • public/llms-full.txt
  • public/llms.txt

📝 Walkthrough

Walkthrough

This pull request adds a new blog post exploring agent architecture paradigms—vendor-scoped versus open/composable runtimes—supported by four custom SVG figure components that illustrate key architectural concepts, a home page card visualization, and content indexing updates.

Changes

Agent Architecture Blog Post and Visualizations

Layer / File(s) Summary
SVG Figure Components for Agent Architecture Diagrams
components/mdx/figures.tsx
Four new exported React SVG components visualize concepts: VendorSiloFigure (vendor isolation and incident bridging), JuniorPluginFigure (hub-and-spoke plugin architecture with egress-proxy credential isolation), AgentScopeFigure (vendor scope spectrum along a generalization axis), and PhaseAgentFigure (phase-based agent orchestration with PDERO lifecycle boxes and cross-phase arcs).
Figure Components Registration in MDX System
components/mdx/mdx-components.tsx
All four new figures are imported and registered in the mdxComponents export map, enabling inline embedding within MDX posts.
Blog Post: Every Tool Ships an Agent Now
content/posts/every-tool-ships-an-agent.mdx
Article frontmatter and eight content sections: opening thesis on vendor chatbots versus composable runtimes; problem description (cross-tool context); Junior's plugin-based solution with credential isolation and MCP integration; comparative analysis of PostHog, CodeRabbit, Notion, and Junior scope strategies; alternative phase-based agent framing (PDERO lifecycle); convergence points across approaches; and conclusion emphasizing integration plumbing over prompting.
Home Page Card Illustration for Agent Article
components/card-illustrations.tsx
New EveryToolAgentArt component renders a circular hub with radiating tool nodes; slug mapping routes "every-tool-ships-an-agent" to this illustration on the home page card system.
Content Index and Public Metadata Updates
public/llms-full.txt, public/llms.txt
New essay entry registered in both the full-text archive and the public content index for discoverability.

🎯 2 (Simple) | ⏱️ ~12 minutes


🐰 A hub with spokes, a spectrum wide,
From vendor silos we do glide,
Phase by phase the agents dance,
MCP threads give them their chance.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 62.50% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: adding a new essay on AI agents. It directly matches the primary purpose of the changeset.
Description check ✅ Passed The description is directly related to the changeset, providing comprehensive details about the essay, custom components, SEO work, and test plan.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch every-tool-ships-an-agent

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 6 files

Re-trigger cubic

@khaliqgant khaliqgant merged commit d104f24 into main May 15, 2026
2 of 3 checks passed
Copy link
Copy Markdown

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 3 potential issues.

View 5 additional findings in Devin Review.

Open in Devin Review


Cramer's tweet frames this as a binary: vendor chatbots are broken, generalized agents win. The implementations tell a more nuanced story. PostHog found that narrow scope produces better answers. Notion found that being the coordination layer matters more than being the agent itself. CodeRabbit found that one strong integration point can expand into many. Junior found that the runtime should be open and composable. And phase-specific agents suggest the organizing principle might not be tools at all, but the lifecycle stages that every engineering task passes through.

What every approach found is that credential isolation, plugin systems, MCP interop, and execution sandboxes consume more engineering effort than prompting. The hard work isn't making the LLM smarter. It's giving the right agent the right access, to the right data, with the right permissions, at the right moment in the lifecycle.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Essay closing line uses banned "not X. It's Y" inversion and grand-closer pattern

The essay's final sentence (content/posts/every-tool-ships-an-agent.mdx:140) is: "The hard work isn't making the LLM smarter. It's giving the right agent the right access, to the right data, with the right permissions, at the right moment in the lifecycle."

This violates two explicit CLAUDE.md writing rules simultaneously:

  1. "This is not X. It is Y." inversions — listed as the first LLM tell to avoid in the Writing Voice section.
  2. "Do not write grand closing lines that could be taglines" — the rule says to "End pieces with a specific observation, a pointer to what comes next, or nothing at all."

The sentence also fits the "dramatic reveal closers like 'the bottleneck was never X'" pattern that CLAUDE.md explicitly bans.

Prompt for agents
The last line of the essay at content/posts/every-tool-ships-an-agent.mdx:140 uses a 'not X, it's Y' inversion pattern and functions as a grand tagline closer, both explicitly banned by CLAUDE.md's Writing Voice rules. The sentence is: 'The hard work isn't making the LLM smarter. It's giving the right agent the right access, to the right data, with the right permissions, at the right moment in the lifecycle.' Replace this with a specific observation or a pointer to what comes next. CLAUDE.md says: 'End pieces with a specific observation, a pointer to what comes next, or nothing at all.' One approach: state a concrete next step or unanswered question, e.g. referencing how MCP convergence might reshape these architectures, or pointing the reader toward a specific resource. Another approach: just end the essay on the preceding sentence ('...consume more engineering effort than prompting.') and cut the grand closer entirely.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.


"Vendor-specific chatbots are broken by design," he wrote. The Sentry agent, the Linear agent, any agent scoped to a single product. Fine for point queries. Nice to get started with. But agents with generalized access outperform them "in every single" use case that crosses tool boundaries.

Then he open-sourced [Junior](https://github.com/getsentry/junior), an agent runtime Sentry's team built internally. Seven plugin packages, a sandboxed execution environment, and an egress proxy for credential isolation. It's not a Sentry chatbot. It's a framework for building a single agent that talks to all your tools at once.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 "It's not X. It's Y" inversion pattern in early paragraph

Line 16 contains: "It's not a Sentry chatbot. It's a framework for building a single agent that talks to all your tools at once." This is a textbook instance of the "This is not X. It is Y." inversion pattern that CLAUDE.md's Writing Voice section lists as the first example of an LLM-sounding sentence structure to avoid. The rule says: "If a sentence sounds like it could appear in any AI-generated essay on any topic, rewrite it."

Prompt for agents
Line 16 of content/posts/every-tool-ships-an-agent.mdx has: 'It's not a Sentry chatbot. It's a framework for building a single agent that talks to all your tools at once.' This matches the 'This is not X. It is Y.' inversion banned by CLAUDE.md. Rewrite to convey the same information without the dramatic negation-then-assertion structure. For example, you could restructure as a single sentence that describes what Junior actually is, or integrate the contrast into the preceding sentence about what was open-sourced. The key is to avoid the two-sentence 'not X / is Y' pivot.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.


## Where the approaches converge

Five patterns, one shared realization: the model matters less than the plumbing.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Section opener uses enumeration-then-verdict / rehearsed rhetorical pivot

Line 116 reads: "Five patterns, one shared realization: the model matters less than the plumbing." This is a neat rhetorical pivot that feels rehearsed — one of the LLM-sounding structures CLAUDE.md's Writing Voice section explicitly flags. The "[count], one [dramatic noun]: [pithy conclusion]" formula could appear in any AI-generated essay. CLAUDE.md says: "Write like a person drafting a blog post, not a model producing content."

Prompt for agents
Line 116 of content/posts/every-tool-ships-an-agent.mdx reads: 'Five patterns, one shared realization: the model matters less than the plumbing.' This is a neat rhetorical pivot flagged by CLAUDE.md as an LLM tell. Rewrite the section opener to be less formulaic. For example, you could state the convergence observation directly without the dramatic count-then-reveal structure, or simply let the comparison table below speak for itself with a more conversational lead-in.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant