<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>opchain blog</title>
    <link>https://opchain.dev/blog</link>
    <description>Engineering deep-dives, opinions on AI-assisted development, playbooks, and releases.</description>
    <language>en-us</language>
    <lastBuildDate>Fri, 10 Jul 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://opchain.dev/blog/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>The docs bot doesn't grade its own homework</title>
      <link>https://opchain.dev/blog/2026-07-10-the-docs-bot-doesnt-grade-its-own-homework</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-07-10-the-docs-bot-doesnt-grade-its-own-homework</guid>
      <pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>Design notes on v1.8's every-PR mesh: why the author never verifies, staleness keyed to SHAs, idempotent PR comments, and gates that fail closed.</description>
      <category>engineering</category>
      <category>engineering</category>
      <category>documentation</category>
      <category>gates</category>
      <category>pr-workflow</category>
    </item>
    <item>
      <title>v1.8 — Documentation &amp; repo hygiene</title>
      <link>https://opchain.dev/blog/2026-07-10-v1-8-documentation-and-repo-hygiene</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-07-10-v1-8-documentation-and-repo-hygiene</guid>
      <pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>v1.8 adds oc-docs-forge and oc-repo-ops: every PR now ships a documentation packet and passes a fail-closed repo-readiness gate before it can open.</description>
      <category>release</category>
      <category>release</category>
      <category>documentation</category>
      <category>repo-hygiene</category>
      <category>git</category>
    </item>
    <item>
      <title>SEO for robots that aren't Googlebot</title>
      <link>https://opchain.dev/blog/2026-07-02-seo-for-robots-that-arent-googlebot</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-07-02-seo-for-robots-that-arent-googlebot</guid>
      <pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>AI agents are a traffic class now. How opchain.dev advertises its MCP server to them — ARD catalog, llms.txt, did:web — and the robots.txt line we refused.</description>
      <category>engineering</category>
      <category>engineering</category>
      <category>mcp</category>
      <category>discovery</category>
      <category>agents</category>
    </item>
    <item>
      <title>27 skills is not too many</title>
      <link>https://opchain.dev/blog/2026-07-01-27-skills-is-not-too-many</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-07-01-27-skills-is-not-too-many</guid>
      <pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>A week ago we argued 22 small skills beat one big agent. We're at 27 now. The argument survived; the number didn't. On catalog growth without bloat.</description>
      <category>opinion</category>
      <category>opinion</category>
      <category>architecture</category>
      <category>skillchain</category>
    </item>
    <item>
      <title>How to grow a protocol without breaking anyone</title>
      <link>https://opchain.dev/blog/2026-06-30-how-to-grow-a-protocol-without-breaking-anyone</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-30-how-to-grow-a-protocol-without-breaking-anyone</guid>
      <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>Checkpoint wire 1.1 added three fields across 27 skills and zero checkpoints broke. The additive-field playbook for evolving agent state, step by step.</description>
      <category>engineering</category>
      <category>engineering</category>
      <category>checkpoints</category>
      <category>protocol</category>
      <category>migration</category>
    </item>
    <item>
      <title>Telemetry should be off by default</title>
      <link>https://opchain.dev/blog/2026-06-29-telemetry-should-be-off-by-default</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-29-telemetry-should-be-off-by-default</guid>
      <pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>Opt-out analytics is a dark pattern in a trench coat. opchain's usage metering is opt-in, local-first, and content-free by schema — here's the design.</description>
      <category>opinion</category>
      <category>opinion</category>
      <category>telemetry</category>
      <category>privacy</category>
    </item>
    <item>
      <title>Our cost report was wrong by 13×</title>
      <link>https://opchain.dev/blog/2026-06-28-our-cost-report-was-wrong-by-13x</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-28-our-cost-report-was-wrong-by-13x</guid>
      <pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>Yesterday we told you building opchain cost $937. The real number is $72. The bug, the fix, and why plausible numbers are the most dangerous kind.</description>
      <category>engineering</category>
      <category>engineering</category>
      <category>dogfooding</category>
      <category>cost</category>
      <category>postmortem</category>
    </item>
    <item>
      <title>What building opchain with opchain cost</title>
      <link>https://opchain.dev/blog/2026-06-27-what-building-opchain-with-opchain-cost</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-27-what-building-opchain-with-opchain-cost</guid>
      <pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>We pointed oc-cost-ops at our own Claude Code history and priced every phase of building opchain. The receipts, the model mix, and where caching pays.</description>
      <category>engineering</category>
      <category>engineering</category>
      <category>dogfooding</category>
      <category>cost</category>
      <category>claude-code</category>
    </item>
    <item>
      <title>v1.7 — Seams &amp; Signals</title>
      <link>https://opchain.dev/blog/2026-06-26-v1-7-seams-and-signals</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-26-v1-7-seams-and-signals</guid>
      <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>Three new skills for cutting monoliths safely, running real fleets, and proving your metrics tell the truth. Yes — the day after v1.6. We can explain.</description>
      <category>release</category>
      <category>release</category>
      <category>signals</category>
      <category>monolith</category>
      <category>fleet</category>
    </item>
    <item>
      <title>v1.6 — The instrumented pipeline</title>
      <link>https://opchain.dev/blog/2026-06-25-v1-6-the-instrumented-pipeline</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-25-v1-6-the-instrumented-pipeline</guid>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>opchain v1.6 adds oc-cost-ops and oc-telemetry-ops: cost attribution, budget gates, and opt-in usage metering. Your pipeline can now see what it spends.</description>
      <category>release</category>
      <category>release</category>
      <category>cost</category>
      <category>telemetry</category>
    </item>
    <item>
      <title>From Django monolith to shipped in an afternoon</title>
      <link>https://opchain.dev/blog/2026-06-24-from-django-monolith-to-shipped</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-24-from-django-monolith-to-shipped</guid>
      <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>An old Django app, no docs, no tests, one nervous developer. A narrated walkthrough of reverse-spec → app-architect → deploy that turns 'I'm scared to touch it' into a shipped change.</description>
      <category>playbook</category>
      <category>playbook</category>
      <category>django</category>
      <category>legacy</category>
      <category>reverse-spec</category>
    </item>
    <item>
      <title>How opchain.dev is built with opchain</title>
      <link>https://opchain.dev/blog/2026-06-24-how-opchain-is-built-with-opchain</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-24-how-opchain-is-built-with-opchain</guid>
      <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>The recursion in full: opchain.dev — this site — is planned, built, audited, and shipped with the opchain skills. A build log of eating our own cooking, including where it gets uncomfortable.</description>
      <category>engineering</category>
      <category>engineering</category>
      <category>dogfooding</category>
      <category>meta</category>
    </item>
    <item>
      <title>Migrating a model version without breaking prod</title>
      <link>https://opchain.dev/blog/2026-06-24-migrating-a-model-version-without-breaking-prod</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-24-migrating-a-model-version-without-breaking-prod</guid>
      <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>A new model drops, or your current one hits end-of-life. Here's the opchain playbook for swapping model versions as a reviewable diff with a measured score delta — not a hope and a redeploy.</description>
      <category>playbook</category>
      <category>playbook</category>
      <category>claude-api</category>
      <category>migration</category>
    </item>
    <item>
      <title>Vibe coding is fine until it isn't</title>
      <link>https://opchain.dev/blog/2026-06-24-vibe-coding-is-fine-until-it-isnt</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-24-vibe-coding-is-fine-until-it-isnt</guid>
      <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>Vibe coding isn't the enemy — it's the right tool for exploration. The mistake is not noticing the moment you've crossed from exploring into shipping, where the rules change.</description>
      <category>opinion</category>
      <category>opinion</category>
      <category>process</category>
    </item>
    <item>
      <title>What a checkpoint actually contains</title>
      <link>https://opchain.dev/blog/2026-06-24-what-a-checkpoint-actually-contains</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-24-what-a-checkpoint-actually-contains</guid>
      <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>A checkpoint is how opchain survives the session. Here's the actual schema — field by field — and why each one exists. The anatomy of the file that makes resume work.</description>
      <category>engineering</category>
      <category>engineering</category>
      <category>checkpoints</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Why 22 small skills beat one big agent</title>
      <link>https://opchain.dev/blog/2026-06-24-why-small-skills-beat-one-big-agent</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-24-why-small-skills-beat-one-big-agent</guid>
      <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>The instinct is to build one agent that does everything. The Unix lesson — and opchain's bet — is that a chain of small, single-purpose skills beats the monolith on every axis that matters.</description>
      <category>opinion</category>
      <category>opinion</category>
      <category>architecture</category>
      <category>skillchain</category>
    </item>
    <item>
      <title>Why your AI coding agent forgets everything</title>
      <link>https://opchain.dev/blog/2026-06-24-why-your-ai-coding-agent-forgets</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-24-why-your-ai-coding-agent-forgets</guid>
      <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>The context window is not memory, and treating it like memory is why your coding agent loses the plot between chats. The fix is older than LLMs: write it down.</description>
      <category>opinion</category>
      <category>memory</category>
      <category>checkpoints</category>
      <category>claude-code</category>
      <category>opinion</category>
    </item>
    <item>
      <title>v1.5 — Build the AI app</title>
      <link>https://opchain.dev/blog/2026-06-23-v1-5-build-the-ai-app</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-23-v1-5-build-the-ai-app</guid>
      <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>opchain's biggest categorical expansion: four AI-native skills that take the LLM part of your app from idea to shipped, evaluated, and safe.</description>
      <category>release</category>
      <category>release</category>
      <category>ai-native</category>
    </item>
    <item>
      <title>Evaluate, don't eyeball: putting prompts under test</title>
      <link>https://opchain.dev/blog/2026-06-22-evaluate-dont-eyeball</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-22-evaluate-dont-eyeball</guid>
      <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>A strong model will produce a confident answer over broken context — which means answer quality alone lies. The fix is to treat prompts like code: gate them on an eval set.</description>
      <category>engineering</category>
      <category>eval</category>
      <category>prompts</category>
      <category>rag</category>
      <category>engineering</category>
    </item>
    <item>
      <title>Dogfooding has a stopping point</title>
      <link>https://opchain.dev/blog/2026-06-21-dogfooding-has-a-stopping-point</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-21-dogfooding-has-a-stopping-point</guid>
      <pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>Eating your own cooking is a quality signal, not a purity test. Where building opchain with opchain is real — and where forcing it would be theater.</description>
      <category>engineering</category>
      <category>engineering</category>
      <category>dogfooding</category>
      <category>rag</category>
    </item>
    <item>
      <title>Ship a RAG answer bot in a week with opchain</title>
      <link>https://opchain.dev/blog/2026-06-20-ship-a-rag-answer-bot-in-a-week</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-20-ship-a-rag-answer-bot-in-a-week</guid>
      <pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>An end-to-end, day-by-day build of a docs answer bot — stack decision, retrieval eval, deploy — narrated with the real calls opchain makes at each step.</description>
      <category>playbook</category>
      <category>playbook</category>
      <category>rag</category>
      <category>tutorial</category>
      <category>cloudflare</category>
    </item>
    <item>
      <title>Your deploy shouldn't call someone else's API</title>
      <link>https://opchain.dev/blog/2026-06-19-your-deploy-shouldnt-call-someone-elses-api</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-19-your-deploy-shouldnt-call-someone-elses-api</guid>
      <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>Our deploys required a Linear API key to render a marketing page. On convenience integrations that quietly join the critical path — and demoting them.</description>
      <category>engineering</category>
      <category>engineering</category>
      <category>deploys</category>
      <category>dependencies</category>
    </item>
    <item>
      <title>opchain speaks MCP now</title>
      <link>https://opchain.dev/blog/2026-06-13-opchain-speaks-mcp-now</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-13-opchain-speaks-mcp-now</guid>
      <pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>v1.4.3 extends opchain past Claude Code: a hosted MCP server at opchain.dev/mcp puts the skills in reach of Codex and any MCP client. The roadmap said v1.8.</description>
      <category>release</category>
      <category>release</category>
      <category>mcp</category>
      <category>codex</category>
    </item>
    <item>
      <title>We renamed every skill in one PR</title>
      <link>https://opchain.dev/blog/2026-06-06-we-renamed-every-skill-in-one-pr</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-06-06-we-renamed-every-skill-in-one-pr</guid>
      <pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>All 18 skills gained an oc- prefix in one PR: identity, flags, commands, site, docs. Why namespacing was worth it — and what the rename taught us about drift.</description>
      <category>engineering</category>
      <category>engineering</category>
      <category>naming</category>
      <category>migration</category>
    </item>
    <item>
      <title>The deploy that forgot to happen</title>
      <link>https://opchain.dev/blog/2026-05-15-the-deploy-that-forgot-to-happen</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-05-15-the-deploy-that-forgot-to-happen</guid>
      <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>Production ran six days stale while staging previewed a branch that never shipped. Nothing crashed — that was the problem. Here's the canary that fixed it.</description>
      <category>engineering</category>
      <category>engineering</category>
      <category>deploys</category>
      <category>postmortem</category>
    </item>
    <item>
      <title>v1.3 — The pipeline meets your PM tool</title>
      <link>https://opchain.dev/blog/2026-05-12-v1-3-the-pipeline-meets-your-pm-tool</link>
      <guid isPermaLink="true">https://opchain.dev/blog/2026-05-12-v1-3-the-pipeline-meets-your-pm-tool</guid>
      <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
      <dc:creator>The opchain team</dc:creator>
      <description>PM-MCP runtime across five skills, a platform menu that spans Cloudflare to Rust, and release-ops — opchain now cuts its own releases. Starting with this one.</description>
      <category>release</category>
      <category>release</category>
      <category>pm-tools</category>
      <category>integrations</category>
    </item>
  </channel>
</rss>
