<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Piyush Vyas — Writing</title><description>Field notes on agentic systems, browser agent protocols, deterministic runtimes, and shipping AI products that hold up.</description><link>https://piyushvyas.com/</link><language>en-us</language><item><title>I Replayed a Browser-Use Agent Session Deterministically</title><link>https://piyushvyas.com/blog/deterministic-browser-agents/</link><guid isPermaLink="true">https://piyushvyas.com/blog/deterministic-browser-agents/</guid><description>Browser agents are unreliable. I recorded one with DBAR and replayed it to prove exactly what happened.</description><pubDate>Thu, 26 Mar 2026 00:00:00 GMT</pubDate><category>dbar</category><category>browser-use</category><category>determinism</category><category>browser-agents</category><category>replay</category></item><item><title>Introducing Skill Contracts</title><link>https://piyushvyas.com/blog/introducing-skill-contracts/</link><guid isPermaLink="true">https://piyushvyas.com/blog/introducing-skill-contracts/</guid><description>Declarative contracts for agent skills. What a skill promises, what actually happened, and a framework to audit the gap.</description><pubDate>Thu, 26 Mar 2026 00:00:00 GMT</pubDate><category>skill-contracts</category><category>agent-skills</category><category>security</category></item><item><title>Introducing Agent Contracts</title><link>https://piyushvyas.com/blog/introducing-agent-contracts/</link><guid isPermaLink="true">https://piyushvyas.com/blog/introducing-agent-contracts/</guid><description>An open spec for making agent behavior enforceable: cost control, tool-use security, and audit trails at the runtime boundary.</description><pubDate>Thu, 26 Mar 2026 00:00:00 GMT</pubDate><category>agent-contracts</category><category>agents</category><category>security</category></item><item><title>What Happens When Two AIs Review Each Other&apos;s Code</title><link>https://piyushvyas.com/blog/staff-engineer-v02/</link><guid isPermaLink="true">https://piyushvyas.com/blog/staff-engineer-v02/</guid><description>staff-engineer v0.2.0: DADS, Google-grade hooks, visual QA, and one command to set up quality gates.</description><pubDate>Wed, 18 Mar 2026 00:00:00 GMT</pubDate><category>claude</category><category>codex</category><category>dads</category><category>quality</category></item><item><title>Introducing DBAR</title><link>https://piyushvyas.com/blog/introducing-dbar/</link><guid isPermaLink="true">https://piyushvyas.com/blog/introducing-dbar/</guid><description>A standalone TypeScript package that makes browser agent sessions deterministic and replayable. Freeze time, record networks, hash everything, replay exactly.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>dbar</category><category>browser-agents</category><category>determinism</category><category>testing</category></item><item><title>Universal Semantic Element ID</title><link>https://piyushvyas.com/blog/introducing-useid/</link><guid isPermaLink="true">https://piyushvyas.com/blog/introducing-useid/</guid><description>Stable element identity for browser agents across runs. uSEID fuses ARIA semantics, DOM structure, and visual position into signatures that survive UI churn.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>useid</category><category>browser-agents</category><category>element-identity</category></item><item><title>Meet staff-engineer</title><link>https://piyushvyas.com/blog/principal/</link><guid isPermaLink="true">https://piyushvyas.com/blog/principal/</guid><description>A Claude Code plugin for the full dev lifecycle. What I built and why.</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate><category>claude</category><category>plugin</category><category>automation</category></item><item><title>One Round-Trip</title><link>https://piyushvyas.com/blog/one-round-trip/</link><guid isPermaLink="true">https://piyushvyas.com/blog/one-round-trip/</guid><description>How BAP&apos;s composite actions cut browser agent latency from 5-10 round trips to one.</description><pubDate>Mon, 02 Feb 2026 00:00:00 GMT</pubDate><category>bap</category><category>performance</category><category>latency</category></item><item><title>MCP vs CLI vs SKILL.md</title><link>https://piyushvyas.com/blog/mcp-vs-cli/</link><guid isPermaLink="true">https://piyushvyas.com/blog/mcp-vs-cli/</guid><description>Real benchmarks, token costs, and a decision framework from shipping all three.</description><pubDate>Thu, 22 Jan 2026 00:00:00 GMT</pubDate><category>mcp</category><category>cli</category><category>skill-md</category></item><item><title>The Lethal Trifecta</title><link>https://piyushvyas.com/blog/lethal-trifecta/</link><guid isPermaLink="true">https://piyushvyas.com/blog/lethal-trifecta/</guid><description>BAP accesses private pages, processes untrusted content, and takes external actions. How I secured all three.</description><pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate><category>security</category><category>bap</category><category>trust</category></item><item><title>I Audited 53 Agent Skills. Here&apos;s What Broke.</title><link>https://piyushvyas.com/blog/auditing-53-agent-skills/</link><guid isPermaLink="true">https://piyushvyas.com/blog/auditing-53-agent-skills/</guid><description>Every SKILL.md from Anthropic, OpenAI, and Vercel through my pipeline. The data.</description><pubDate>Sun, 14 Dec 2025 00:00:00 GMT</pubDate><category>skill-tools</category><category>audit</category><category>data</category></item><item><title>Deterministic Tooling for Agent Skills</title><link>https://piyushvyas.com/blog/introducing-skill-tools/</link><guid isPermaLink="true">https://piyushvyas.com/blog/introducing-skill-tools/</guid><description>Parse, lint, score, and route SKILL.md files. No LLMs anywhere in the pipeline.</description><pubDate>Mon, 01 Dec 2025 00:00:00 GMT</pubDate><category>skill-tools</category><category>cli</category><category>bm25</category></item><item><title>Semantic Selectors</title><link>https://piyushvyas.com/blog/semantic-selectors/</link><guid isPermaLink="true">https://piyushvyas.com/blog/semantic-selectors/</guid><description>Why I built BAP around accessibility roles instead of CSS selectors.</description><pubDate>Thu, 20 Nov 2025 00:00:00 GMT</pubDate><category>bap</category><category>accessibility</category><category>selectors</category></item><item><title>Browser Agent Protocol</title><link>https://piyushvyas.com/blog/introducing-browser-agent-protocol/</link><guid isPermaLink="true">https://piyushvyas.com/blog/introducing-browser-agent-protocol/</guid><description>An open standard for AI agents to control web browsers. Why I built it and how it works.</description><pubDate>Sun, 09 Nov 2025 00:00:00 GMT</pubDate><category>bap</category><category>mcp</category><category>open-source</category></item><item><title>Booking Open Play Before It&apos;s Gone</title><link>https://piyushvyas.com/blog/browser-agents/</link><guid isPermaLink="true">https://piyushvyas.com/blog/browser-agents/</guid><description>The Lifetime Fitness open play battle that led me to build Browser Agent Protocol.</description><pubDate>Tue, 28 Oct 2025 00:00:00 GMT</pubDate><category>bap</category><category>pickleball</category><category>automation</category></item><item><title>MCP is USB-C for Agents</title><link>https://piyushvyas.com/blog/mcp-60-seconds/</link><guid isPermaLink="true">https://piyushvyas.com/blog/mcp-60-seconds/</guid><description>The mental model I use after building 30+ MCP integrations at AWS.</description><pubDate>Wed, 15 Oct 2025 00:00:00 GMT</pubDate><category>mcp</category><category>agents</category><category>explainer</category></item></channel></rss>