<?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>DEV Community: Sigireddy Viswesh</title>
    <description>The latest articles on DEV Community by Sigireddy Viswesh (@sigireddy_viswesh).</description>
    <link>https://dev.to/sigireddy_viswesh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4146851%2F20e66d96-e936-4842-ae36-cf136c8bbb19.jpg</url>
      <title>DEV Community: Sigireddy Viswesh</title>
      <link>https://dev.to/sigireddy_viswesh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sigireddy_viswesh"/>
    <language>en</language>
    <item>
      <title>PROTO is here</title>
      <dc:creator>Sigireddy Viswesh</dc:creator>
      <pubDate>Sat, 03 Oct 2026 17:35:38 +0000</pubDate>
      <link>https://dev.to/sigireddy_viswesh/proto-is-here-29f4</link>
      <guid>https://dev.to/sigireddy_viswesh/proto-is-here-29f4</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/sanity-2026-09-16"&gt;Sanity Challenge, Path One: Ship an Agent That Queries Real Content&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Proto — A Small API Design Research Agent
&lt;/h2&gt;

&lt;p&gt;We're all building software faster now.&lt;/p&gt;

&lt;p&gt;With AI coding tools, it's easy to describe something, get working code, fix a few things, and move on. I do this too.&lt;/p&gt;

&lt;p&gt;But when we're moving fast, we often take the easiest path. API design is a good example. There are standards, guidelines, HTTP semantics, and API documentation available for free, but realistically, we're not going through the documentation for every endpoint or every pull request.&lt;/p&gt;

&lt;p&gt;So I wanted to try something small.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if an agent could do that research for us before we make the decision?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's Proto.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Proto is a small terminal-based API design research agent.&lt;/p&gt;

&lt;p&gt;You can ask it questions like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Should I use PUT or PATCH when updating a user's email?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;or:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Is POST /getUser a reasonable API design?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;or even give it an actual curl request:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;proto review &lt;span class="s1"&gt;'curl -X POST https://api.example.com/getUser -d "{\"id\":\"123\"}"'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Instead of immediately answering from the LLM's existing knowledge, Proto first creates a small research plan.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PUT semantics
PATCH semantics
Partial updates
Idempotency
POST semantics
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;It then queries a Sanity Knowledge Base through Sanity Context MCP, collects the relevant source-linked material, and gives that evidence to the LLM for reasoning.&lt;/p&gt;

&lt;p&gt;The basic flow is:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Question
   ↓
Research plan
   ↓
Sanity Context MCP
   ↓
Knowledge Base
   ↓
Retrieved evidence
   ↓
OpenRouter reasoning
   ↓
Answer + sources
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The goal was deliberately small: &lt;strong&gt;make researching an API decision easier.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How I Used Sanity
&lt;/h2&gt;

&lt;p&gt;Sanity is the knowledge layer behind Proto.&lt;/p&gt;

&lt;p&gt;I created a Knowledge Base containing API-related documentation and standards, including HTTP semantics, REST/API design, Google AIPs, resource naming, CRUD operations, status codes, error handling, idempotency, pagination, authentication, versioning, and other API guidance.&lt;/p&gt;

&lt;p&gt;Proto connects to that Knowledge Base through &lt;strong&gt;Sanity Context MCP&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The interesting part isn't just that Sanity contains the documents. Proto uses the content as part of a research process.&lt;/p&gt;

&lt;p&gt;For example, if I ask:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;I need to update only a user's email address.
Should my API use PUT, PATCH, or POST?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Proto doesn't just search for the words "email" or "PATCH."&lt;/p&gt;

&lt;p&gt;It breaks the problem down into questions such as:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;What are the semantics of PUT?

What are the semantics of PATCH?

How are partial updates represented?

What are the idempotency implications?

What guidance applies to updating a single resource field?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The retrieved content stays connected to its sources, and Proto reasons across the evidence before producing the answer.&lt;/p&gt;

&lt;p&gt;That was the part I wanted to explore with this challenge:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;problem
   ↓
research
   ↓
real content
   ↓
evidence
   ↓
reasoning
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;rather than simply:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;keyword search → LLM summary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Proto is also instructed not to invent citations or treat every unusual API design as automatically wrong. It tries to separate documented guidance from its own interpretation and from normal design trade-offs.&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Demo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div&gt;
  &lt;iframe src="https://loom.com/embed/8dbdbb0ad3e3453e910bbdb197f418b7" width="100%" height="400"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;



&lt;p&gt;The demo shows Proto researching an API design question through Sanity Context and then reviewing an actual request.&lt;/p&gt;

&lt;p&gt;The terminal also shows the different stages of the agent so it's clear when Proto is researching versus reasoning over the retrieved content.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Repository:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Viswesh934" rel="noopener noreferrer"&gt;
        Viswesh934
      &lt;/a&gt; / &lt;a href="https://github.com/Viswesh934/proto" rel="noopener noreferrer"&gt;
        proto
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Proto — API Design Research Agent&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Build anything that needs an answer it can't afford to get wrong."&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;APIs are public contracts. Once an endpoint is published to mobile apps, SDKs, and third-party developers, design mistakes are prohibitively expensive to fix. &lt;strong&gt;Proto&lt;/strong&gt; is an AI API design research agent powered by &lt;strong&gt;Sanity Context MCP&lt;/strong&gt;. Instead of relying purely on an LLM's pretrained memory or hallucinations, Proto dynamically formulates a research plan, queries the Sanity Knowledge Base (containing authoritative Google AIPs, RFC 9110 HTTP semantics, and Zalando guidelines), and synthesizes source-grounded answers directly in your terminal.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;📖 &lt;strong&gt;Full Technical Documentation:&lt;/strong&gt; See &lt;a href="https://github.com/Viswesh934/proto/DOCUMENTATION.md" rel="noopener noreferrer"&gt;DOCUMENTATION.md&lt;/a&gt; for detailed Phase 1 &amp;amp; Phase 2 architecture, MCP tool orchestration, and prompt engineering.&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;
&lt;pre class="notranslate"&gt;&lt;code&gt;                       USER
                        │
                        ▼
                 Natural language (or curl)
                        │
                        ▼
                 ┌──────────────┐
                 │    PROTO     │
                 │    Agent     │
                 └──────┬───────┘
                        │
                        ▼
                 Understand question
                        │
                        ▼
                  Research plan
                        │
                        ▼
              Sanity Context MCP
                        │
                        ▼
               Knowledge Base&lt;/code&gt;&lt;/pre&gt;…&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Viswesh934/proto" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Proto is written in Go and intentionally stays small.&lt;/p&gt;

&lt;p&gt;There is no frontend, database, vector database, or custom RAG system.&lt;/p&gt;

&lt;p&gt;The pieces are simply:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Proto CLI
    ↓
Go Agent
    ├── Sanity Context MCP
    └── OpenRouter
    ↓
Source-backed answer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Sanity Project Details
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Sanity Org ID:&lt;/strong&gt; &lt;code&gt;od9ex4ma5 (Knowledge Base ID: kbzijGjZZuE3)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset / Project:&lt;/strong&gt; &lt;code&gt;https://www.sanity.io/manage/organizations/od9ex4ma5/context&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The Sanity project contains the Knowledge Base and the source material Proto uses during its research.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent Session
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://dev.to/agent_sessions/proto-api-design-research-agent-8wfgjl"&gt;Proto — API Design Research Agent&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The session shows the development of Proto and the evolution from an initial curl reviewer into a broader API design research agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Proto is a small change with a simple intention.&lt;/p&gt;

&lt;p&gt;When we're moving fast, it's easy to take the first solution that works. I wanted to see if an agent could make it a little easier to pause, look at the actual documentation and standards, and make a more informed choice.&lt;/p&gt;

&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;Not replacing developers. Not replacing documentation.&lt;/p&gt;

&lt;p&gt;Just making the better path a little easier to take.&lt;/p&gt;

&lt;h1&gt;
  
  
  sanity #ai #agents #golang #apis
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>sanitychallenge</category>
      <category>sanity</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
