<?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: Yadlapalli Avinash ricky</title>
    <description>The latest articles on DEV Community by Yadlapalli Avinash ricky (@yadlapalli_avinashricky).</description>
    <link>https://dev.to/yadlapalli_avinashricky</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%2F2747562%2F40a72b65-5f12-4b73-9f1b-e61be7421ff0.png</url>
      <title>DEV Community: Yadlapalli Avinash ricky</title>
      <link>https://dev.to/yadlapalli_avinashricky</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yadlapalli_avinashricky"/>
    <language>en</language>
    <item>
      <title>Agent-Native Architecture: How Google AI Search Parsed an Exposed MCP Server</title>
      <dc:creator>Yadlapalli Avinash ricky</dc:creator>
      <pubDate>Mon, 26 Oct 2026 15:14:13 +0000</pubDate>
      <link>https://dev.to/yadlapalli_avinashricky/agent-native-architecture-how-google-ai-search-parsed-an-exposed-mcp-server-40be</link>
      <guid>https://dev.to/yadlapalli_avinashricky/agent-native-architecture-how-google-ai-search-parsed-an-exposed-mcp-server-40be</guid>
      <description>&lt;p&gt;Search engines have spent three decades indexing static documents. Crawlers fetch HTML, parse semantic tags, follow hyperlinks, and infer page relevance. &lt;/p&gt;

&lt;p&gt;That model is breaking down.&lt;/p&gt;

&lt;p&gt;When autonomous agents and generative search engines evaluate web platforms, semantic HTML alone forces models to infer intent, guess capabilities, and synthesize summaries from marketing text. The result is often vague or hallucinated.&lt;/p&gt;

&lt;p&gt;When building the platform for &lt;a href="https://avibook.online" rel="noopener noreferrer"&gt;The Art of AI Prompts&lt;/a&gt;, I tested a different pattern: &lt;strong&gt;Agent-Native Web Design&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Instead of treating the website strictly as a presentation document for human eyes, the architecture exposes two parallel layers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;An interactive WebGL/3D digital canvas for human readers to inspect the first three chapters.&lt;/li&gt;
&lt;li&gt;An active, streamable Model Context Protocol (MCP) server endpoint at &lt;code&gt;/mcp&lt;/code&gt; for autonomous agents.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Recently, Google's AI Mode Search crawled the domain. Rather than summarizing marketing blurbs or meta tags, the generative model crawled the underlying system architecture and extracted its operational capabilities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdje0rihq9u7by1fhftf4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdje0rihq9u7by1fhftf4.png" alt="Google AI Overview Parsing avibook.online" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What Google AI Synthesized
&lt;/h2&gt;

&lt;p&gt;In its overview, Google's generative search engine extracted four key architectural traits:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Direct Agent Integration:&lt;/strong&gt; It identified the live HTTP MCP server endpoint, explicitly noting that autonomous agents (like Claude Desktop) can connect directly to retrieve technical prompt patterns and benchmark figures as structured data without web scraping.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dual-Audience Classification:&lt;/strong&gt; In its architectural breakdown, Google classified the site's primary target audience as &lt;em&gt;"Humans and Autonomous AI Agents"&lt;/em&gt;, contrasting it with the &lt;em&gt;"Humans only"&lt;/em&gt; boundary of conventional sites.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In-Browser Execution:&lt;/strong&gt; It differentiated the WebGL 3D preview engine from static downloadable PDFs or Amazon Look-Inside previews.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Actionable Connection Prompts:&lt;/strong&gt; Most telling, Google AI concluded its breakdown by asking the searcher:
&amp;gt; &lt;em&gt;"Would you like assistance in setting up your local AI agent (like Claude Desktop) to connect to this book's MCP server, or do you want a breakdown of the specific prompt engineering patterns covered in the free preview?"&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqya1o8hn1cz7ssx1qlq9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqya1o8hn1cz7ssx1qlq9.png" alt="Google AI Overview Comparison Matrix" width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is the comparison matrix generated by Google AI:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;avibook.online&lt;/th&gt;
&lt;th&gt;Standard Platforms&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Primary Audience&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Humans &lt;strong&gt;and&lt;/strong&gt; Autonomous AI Agents&lt;/td&gt;
&lt;td&gt;Humans only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;API Integration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Live, streamable HTTP MCP Server&lt;/td&gt;
&lt;td&gt;None (or standard text RSS/Blogs)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Preview Experience&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Interactive, high-performance 3D reader&lt;/td&gt;
&lt;td&gt;Static PDF download / Look-Inside&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Content Depth&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Production framework patterns &amp;amp; RAG&lt;/td&gt;
&lt;td&gt;Basic syntax &amp;amp; introductory examples&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Why Agent-Native Architecture Matters for Developers
&lt;/h2&gt;

&lt;p&gt;Traditional SEO optimizes for human click-through rates. Generative Engine Optimization (GEO) and Agent-Native Design optimize for machine comprehension and agentic delegation.&lt;/p&gt;

&lt;p&gt;When you expose structured endpoints like MCP over Server-Sent Events (SSE) or HTTP:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Deterministic Verification Over Guesswork
&lt;/h3&gt;

&lt;p&gt;LLM-powered search bots don't have to parse through CSS grids, cookie banners, and marketing fluff to discover what your software does. The MCP tool manifest declares tools, inputs, and schemas deterministically.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Autonomous Task Execution
&lt;/h3&gt;

&lt;p&gt;When a user asks their AI assistant to "find a framework pattern for structured RAG validation," the agent doesn't need to read an entire blog post. It queries the MCP endpoint directly, executes the retrieval tool, and delivers the validated output.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Dual-Layer Interfaces
&lt;/h3&gt;

&lt;p&gt;Websites do not need to become ugly text dumps to be AI-friendly. You can run high-fidelity graphics, WebGL canvas experiences, and clean design on the frontend while exposing clean JSON-LD and &lt;code&gt;/mcp&lt;/code&gt; endpoints on the backend.&lt;/p&gt;




&lt;h2&gt;
  
  
  Connecting an Agent Locally
&lt;/h2&gt;

&lt;p&gt;To demonstrate how autonomous agents interact with an agent-native endpoint, Claude Desktop can be configured to connect directly via &lt;code&gt;claude_desktop_config.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"avibook"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"mcp-remote-client"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://avibook.online/mcp"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once loaded, the local model queries the book's architectural formulas and engineering patterns directly through tool calls, bypassing browser automation entirely.&lt;/p&gt;




&lt;h2&gt;
  
  
  Building for Autonomous Traffic
&lt;/h2&gt;

&lt;p&gt;If you are building technical documentation, developer tools, or content platforms in 2026, consider how autonomous crawlers evaluate your stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Expose machine-readable schemas and standard MCP endpoints alongside standard HTML.&lt;/li&gt;
&lt;li&gt;Ensure tool manifests provide clean descriptions and strict type constraints.&lt;/li&gt;
&lt;li&gt;Test your endpoints using both human browsers and agentic clients.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Web architecture is expanding beyond human viewport rendering. The platforms that provide clear, queryable endpoints will be the ones autonomous systems choose to cite and delegate to.&lt;/p&gt;

&lt;p&gt;You can inspect the live endpoint and the platform at &lt;a href="https://avibook.online" rel="noopener noreferrer"&gt;avibook.online&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>architecture</category>
      <category>mcp</category>
    </item>
    <item>
      <title>Why Multi-Agent Workflows Break in Production (And How to Build Predictable Loops)</title>
      <dc:creator>Yadlapalli Avinash ricky</dc:creator>
      <pubDate>Thu, 08 Oct 2026 06:43:13 +0000</pubDate>
      <link>https://dev.to/yadlapalli_avinashricky/why-multi-agent-workflows-break-in-production-and-how-to-build-predictable-loops-15k8</link>
      <guid>https://dev.to/yadlapalli_avinashricky/why-multi-agent-workflows-break-in-production-and-how-to-build-predictable-loops-15k8</guid>
      <description>&lt;h1&gt;
  
  
  Why Multi-Agent Workflows Break in Production (And How to Build Predictable Loops)
&lt;/h1&gt;

&lt;p&gt;Most multi-agent demos fail the moment you put them in front of real production traffic.&lt;/p&gt;

&lt;p&gt;They look impressive in five-minute screencasts: an orchestrator agent receives a user prompt, sketches a plan, delegates sub-tasks to three specialized agents, and returns a tidy response.&lt;/p&gt;

&lt;p&gt;When you deploy that architecture into production, reality hits quickly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An upstream API returns an unexpected &lt;code&gt;429 Too Many Requests&lt;/code&gt;, and the planning agent assumes the endpoint no longer exists.&lt;/li&gt;
&lt;li&gt;A research agent writes an 8,000-token summary of an API response into shared history, diluting system prompt instructions for subsequent steps.&lt;/li&gt;
&lt;li&gt;Two agents enter an agreeable loop where Agent A asks Agent B for clarification, Agent B reframes the question, and both report that progress is underway while burning through token budgets.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These failures do not stem from bad prompt engineering or weak base models. They stem from a fundamental architectural mistake: &lt;strong&gt;treating language models as workflow control planes.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Math Behind Agent Failure: Compounding Probabilities
&lt;/h2&gt;

&lt;p&gt;To understand why autonomous agent workflows degrade, consider basic probability.&lt;/p&gt;

&lt;p&gt;Suppose you build an agent pipeline with four sequential steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Intent Classification&lt;/li&gt;
&lt;li&gt;Data Retrieval&lt;/li&gt;
&lt;li&gt;Information Extraction&lt;/li&gt;
&lt;li&gt;Synthesis &amp;amp; Response&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Assume each step uses a leading model and achieves an impressive &lt;strong&gt;92% standalone accuracy&lt;/strong&gt; on its isolated task.&lt;/p&gt;

&lt;p&gt;$$\text{Pipeline Reliability} = 0.92^4 \approx 71.6\%$$&lt;/p&gt;

&lt;p&gt;Almost &lt;strong&gt;30% of user requests will fail or produce degraded output.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your pipeline expands to six steps or introduces open-ended conversational turns:&lt;/p&gt;

&lt;p&gt;$$\text{Pipeline Reliability} = 0.92^8 \approx 51.3\%$$&lt;/p&gt;

&lt;p&gt;At eight autonomous steps, your production system is functionally equivalent to a coin toss. &lt;/p&gt;

&lt;p&gt;In standard software engineering, we isolate components with type systems, assertions, and boundary checks. In naive agent frameworks, developers frequently pass raw text from one model invocation directly into the next, allowing upstream errors to contaminate the entire downstream pipeline.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Three Reasons Unbounded Loops Break
&lt;/h2&gt;

&lt;p&gt;When analyzing production agent logs, the failures cluster into three distinct categories:&lt;/p&gt;

&lt;h3&gt;
  
  
  A. Context Window Pollution
&lt;/h3&gt;

&lt;p&gt;Autonomous agent loops tend to append everything to conversation history: tool call payloads, schema definitions, traceback fragments, and internal reasoning.&lt;/p&gt;

&lt;p&gt;By step five, the context window contains thousands of tokens of operational noise. Research on needle-in-a-haystack retrieval shows that model attention degrades as context length grows, particularly in the middle of long prompts. The model forgets constraints stated in the system prompt and begins hallucinating arguments for tool calls.&lt;/p&gt;

&lt;h3&gt;
  
  
  B. Indefinite Monologue and Hallucinated Completion
&lt;/h3&gt;

&lt;p&gt;If an agent is tasked with deciding when a complex task is finished, it struggles with negative results. &lt;/p&gt;

&lt;p&gt;When a database query returns zero records, a deterministic script logs an empty result and moves to an alternate branch. An autonomous agent frequently assumes its search query was slightly flawed, reformulates the query with subtle variations, and executes four more database calls before reaching an arbitrary recursion limit.&lt;/p&gt;

&lt;h3&gt;
  
  
  C. Tool Definition Hallucination
&lt;/h3&gt;

&lt;p&gt;When you give an agent access to twelve different tools, the probability of selecting the wrong tool or inventing phantom parameters increases dramatically. Models perform significantly better when choosing between two or three focused tools scoped specifically to the current task.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. The Solution: Deterministic State Machines Beat Agent Swarms
&lt;/h2&gt;

&lt;p&gt;The antidote to unpredictable agent loops is to separate &lt;strong&gt;reasoning&lt;/strong&gt; from &lt;strong&gt;control flow&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Python runtime&lt;/strong&gt; should own the control plane: state transitions, retry budgets, timeout policies, and routing logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Language Model&lt;/strong&gt; should own semantic execution: parsing messy unstructured text, transforming formats, or generating natural language.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+-----------+      User Input      +---------------+
|   START   | -------------------&amp;gt; |  Parse Intent |
+-----------+                      +---------------+
                                           |
                                           v
+------------------+   Tool Error  +---------------+
| Retry / Fallback | &amp;lt;------------ | Execute Tool  |
+------------------+               +---------------+
         |                                 |
         | Valid Tool Output               v
         |                         +---------------+
         +-----------------------&amp;gt; | Validate State|
                                   +---------------+
                                           |
                                           v
                                   +---------------+
                                   | Synthesize /  |
                                   | Return Output |
                                   +---------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of letting an agent decide where to navigate next through free-form text generation, you define a finite state graph with explicit guardrails:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pydantic&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BaseModel&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Field&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;typing&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Literal&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Optional&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;enum&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Enum&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;AgentStep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Enum&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;EXTRACT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;extract&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;QUERY_DB&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;query_db&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;VALIDATE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;validate&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;RESPOND&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;respond&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;ERROR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;error&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PipelineState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BaseModel&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;user_query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;
    &lt;span class="n"&gt;current_step&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;AgentStep&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AgentStep&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;EXTRACT&lt;/span&gt;
    &lt;span class="n"&gt;extracted_params&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;default_factory&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;retrieved_data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Optional&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;
    &lt;span class="n"&gt;retry_count&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
    &lt;span class="n"&gt;max_retries&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
    &lt;span class="n"&gt;final_response&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Optional&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this architecture, every node receives a typed &lt;code&gt;PipelineState&lt;/code&gt;, performs its scoped task, and updates specific fields.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. The Three Production Rules for Agent Loops
&lt;/h2&gt;

&lt;p&gt;If you are moving from experimental agent prototypes to production systems, apply these three design principles:&lt;/p&gt;

&lt;h3&gt;
  
  
  Rule 1: Scoped Tool Visibility
&lt;/h3&gt;

&lt;p&gt;Never provide an agent with all system tools simultaneously. Scope tool definitions strictly to the active state node. &lt;/p&gt;

&lt;p&gt;An extraction node needs zero database write tools. A validation node needs zero web search tools. Narrowing the tool surface eliminates tool selection errors.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rule 2: Strict Boundary Validation with Pydantic
&lt;/h3&gt;

&lt;p&gt;Never accept raw model strings directly into downstream state. Force all intermediate structured outputs through Pydantic validation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;execute_extraction_node&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;PipelineState&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;PipelineState&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="c1"&gt;# LLM call configured with strict structured output schema
&lt;/span&gt;        &lt;span class="n"&gt;parsed_output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;call_llm_with_schema&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;user_query&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;schema&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;ExtractionSchema&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;extracted_params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;parsed_output&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;model_dump&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;current_step&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AgentStep&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;QUERY_DB&lt;/span&gt;
    &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="n"&gt;ValidationError&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;retry_count&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;retry_count&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;max_retries&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;current_step&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AgentStep&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ERROR&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;current_step&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AgentStep&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;EXTRACT&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;state&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If validation fails, the error is handled locally at the node level without corrupting the broader state or blowing the context window.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rule 3: Isolate Context Memory Per Node
&lt;/h3&gt;

&lt;p&gt;Instead of maintaining an ever-growing conversation history array, construct prompts ephemerally from the typed state:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;build_query_prompt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;PipelineState&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;# Notice: We only pass the extracted parameters, not the whole conversation history
&lt;/span&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
    Generate a SQL query using only these verified parameters:
    Filters: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;extracted_params&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;
    &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This prevents context window bloat and keeps inference costs predictable.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Autonomous agent choreography is fun to experiment with, but mission-critical production systems demand predictability, clear audit trails, and strict cost controls.&lt;/p&gt;

&lt;p&gt;Move your routing logic, error handling, and state transitions out of system prompts and into deterministic code. Use language models where they excel: for semantic translation, reasoning, and synthesis within tightly bounded nodes.&lt;/p&gt;

&lt;p&gt;When your control flow is deterministic, your agents become reliable.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>softwareengineering</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Why AI Writing Sounds Fake (And How to Fix It With the writ Skill)</title>
      <dc:creator>Yadlapalli Avinash ricky</dc:creator>
      <pubDate>Tue, 06 Oct 2026 12:41:29 +0000</pubDate>
      <link>https://dev.to/yadlapalli_avinashricky/why-ai-writing-sounds-fake-and-how-to-fix-it-with-the-writ-skill-14mj</link>
      <guid>https://dev.to/yadlapalli_avinashricky/why-ai-writing-sounds-fake-and-how-to-fix-it-with-the-writ-skill-14mj</guid>
      <description>&lt;h1&gt;
  
  
  Why AI Writing Sounds Fake (And How to Fix It With the writ Skill)
&lt;/h1&gt;

&lt;p&gt;You can spot AI-generated prose within three sentences.&lt;/p&gt;

&lt;p&gt;It rarely stems from grammatical errors. Large language models understand syntax and subject-verb agreement better than most human writers. The tell is subtler: an unearned earnestness, a predictable rhythm, and an insistence on explaining why everything it mentions is historic, essential, or transformative.&lt;/p&gt;

&lt;p&gt;When readers encounter this tone, they stop reading. Search engines downrank it. Communities reject it.&lt;/p&gt;

&lt;p&gt;Over the past two years, Wikipedia editors cataloged thousands of AI-generated article submissions to isolate exactly what gives synthetic prose away. They compiled their findings into a guide called &lt;a href="https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing" rel="noopener noreferrer"&gt;&lt;em&gt;Signs of AI Writing&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To turn those observations into an automated, actionable workflow for developers and writers, I built &lt;a href="https://github.com/Avinashricky211/writ" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;code&gt;writ&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;—an open-source AI self-audit skill that systematically strips synthetic habits out of machine drafts.&lt;/p&gt;

&lt;p&gt;Here is an analysis of why language models write this way, the specific patterns that give them away, and how to audit your text before publishing.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Core Problem: Over-Narrated Significance
&lt;/h2&gt;

&lt;p&gt;The single biggest tell in AI text is not a specific word. It is the impulse to explain the importance of a statement instead of simply stating it.&lt;/p&gt;

&lt;p&gt;Human writers trust their audience. If you report that an engineering team migrated from PostgreSQL to ClickHouse and cut query latency by 80%, the reader grasps the impact immediately.&lt;/p&gt;

&lt;p&gt;A standard language model cannot resist adding a participatory tail:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"...slashing query latency by 80%, highlighting the team's commitment to efficiency and underscoring the transformative shift toward real-time analytics."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Notice what happened. The sentence stopped delivering information and started narrating its own importance. If you delete that final clause, the factual value remains unchanged.&lt;/p&gt;

&lt;p&gt;Language models behave this way because reinforcement learning from human feedback (RLHF) rewards outputs that sound complete, polite, and authoritative. In practice, that training creates prose that sounds like an anxious corporate press release.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Six Most Common AI Writing Tells
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://github.com/Avinashricky211/writ" rel="noopener noreferrer"&gt;&lt;code&gt;writ&lt;/code&gt;&lt;/a&gt; skill codifies Wikipedia's catalog into a targeted checklist. When auditing drafts, these six patterns appear most frequently:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Dangling Participial Clauses
&lt;/h3&gt;

&lt;p&gt;Sentences that end with trailing &lt;code&gt;-ing&lt;/code&gt; clauses designed to manufacture weight:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The tell:&lt;/strong&gt; &lt;em&gt;"...marking a pivotal moment," "...serving as a testament to," "...highlighting the growing importance of."&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The fix:&lt;/strong&gt; Cut the clause. State the fact and place a period at the end of the thought.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Stock Significance Vocabulary
&lt;/h3&gt;

&lt;p&gt;Certain words are fine in moderation, but language models cluster them with statistical regularity:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Banned cluster:&lt;/strong&gt; &lt;em&gt;delve, robust, tapestry, realm, underscore, leverage, foster, holistic, invaluable, seamless, game-changer, cutting-edge, testament, pivotal.&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The fix:&lt;/strong&gt; Replace abstract descriptors with precise nouns and verbs. Instead of &lt;em&gt;"a robust data pipeline,"&lt;/em&gt; write &lt;em&gt;"a pipeline handling 50,000 events per second."&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. The False Contrast Habit ("It's not X, it's Y")
&lt;/h3&gt;

&lt;p&gt;Language models frequently reach for rhetorical negative parallelism to fake depth:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The tell:&lt;/strong&gt; &lt;em&gt;"It's not just a database—it's the backbone of modern data infrastructure."&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The fix:&lt;/strong&gt; Use contrast only when two concrete alternatives are genuinely in conflict. Avoid using it as decorative phrasing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Em Dash Overuse
&lt;/h3&gt;

&lt;p&gt;AI models lean heavily on em dashes (&lt;code&gt;—&lt;/code&gt;) to splice thoughts together where human writers naturally use commas, colons, parentheses, or separate sentences.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The fix:&lt;/strong&gt; Limit em dashes to sharp, deliberate interruptions. When in doubt, break the thought into two shorter sentences.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Defensive Hedging and Fabricated Debates
&lt;/h3&gt;

&lt;p&gt;Models often invent controversy around mundane facts to appear objective:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The tell:&lt;/strong&gt; &lt;em&gt;"While opinions vary on the exact year Python was conceived..."&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The fix:&lt;/strong&gt; Python was released in 1991. Settled technical facts do not require diplomatic hedging.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. Rhythmic Uniformity
&lt;/h3&gt;

&lt;p&gt;AI prose tends to settle into a metronomic cadence: sentence of twelve words, followed by sentence of fourteen words, followed by sentence of thirteen words.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The fix:&lt;/strong&gt; Introduce variation. Mix short fragments with complex explanations. Break the rhythm intentionally.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What is the &lt;code&gt;writ&lt;/code&gt; Skill?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Avinashricky211/writ" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;code&gt;writ&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; is an open-source, prompt-based self-audit skill designed for AI coding agents, developers, and technical writers.&lt;/p&gt;

&lt;p&gt;Instead of generating text from scratch, &lt;code&gt;writ&lt;/code&gt; acts as an editorial second pass. It ingests an existing draft, scans the text against the codified Wikipedia heuristics, identifies synthetic patterns, and rewrites the passage while preserving the author's technical intent and data points.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                      ┌──────────────────────┐
                      │ Raw Draft / AI Output│
                      └──────────┬───────────┘
                                 │
                                 ▼
                      ┌──────────────────────┐
                      │  writ Audit Engine   │
                      │  • Kill tacked clauses│
                      │  • Strip stock terms │
                      │  • Break cadence lock│
                      └──────────┬───────────┘
                                 │
                                 ▼
                      ┌──────────────────────┐
                      │ Natural Human Prose  │
                      └──────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Before and After: The Audit in Action
&lt;/h2&gt;

&lt;p&gt;To understand how &lt;code&gt;writ&lt;/code&gt; works, examine this comparison taken from a technical system overview:&lt;/p&gt;

&lt;h3&gt;
  
  
  The Raw AI Output:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"In today's fast-paced technological landscape, caching plays a vital role in backend architecture. By seamlessly storing frequently accessed records in memory, Redis acts as a game-changer for distributed systems, underscoring the critical need for low-latency operations and highlighting the shift toward real-time responsiveness."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Notice the symptoms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;"In today's fast-paced technological landscape"&lt;/em&gt; (cliché opener)&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;"plays a vital role"&lt;/em&gt; (stock significance)&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;"seamlessly... game-changer"&lt;/em&gt; (unearned hyperbole)&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;"underscoring the critical need... highlighting the shift"&lt;/em&gt; (double dangling participial clause)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  After Running Through &lt;code&gt;writ&lt;/code&gt;:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Redis stores hot keys in memory to keep read latencies under two milliseconds. For high-throughput services, that eliminates repetitive queries against the primary database and prevents connection exhaustion during traffic spikes."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The edited version is shorter, contains specific technical metrics, and provides concrete engineering rationale without posturing.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to Use &lt;code&gt;writ&lt;/code&gt; in Your Workflow
&lt;/h2&gt;

&lt;p&gt;The repository is hosted on GitHub at &lt;a href="https://github.com/Avinashricky211/writ" rel="noopener noreferrer"&gt;&lt;strong&gt;github.com/Avinashricky211/writ&lt;/strong&gt;&lt;/a&gt;. You can integrate it in three ways:&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 1: Using it in Agentic Coding Tools (Antigravity, Cursor, Claude Code)
&lt;/h3&gt;

&lt;p&gt;Clone or add the &lt;code&gt;writ&lt;/code&gt; directory directly into your agent skills path:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Avinashricky211/writ.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When prompt-instructing your agent, invoke the skill:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Review this article draft using /writ. Strip all synthetic AI tells, remove dangling significance clauses, and ensure the tone reads as a technical peer speaking to another engineer.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Method 2: Manual Terminal / Prompt Pass
&lt;/h3&gt;

&lt;p&gt;You can copy &lt;code&gt;SKILL.md&lt;/code&gt; from the repository and paste it into your system prompt when generating or revising blog posts, release notes, documentation, or newsletters.&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 3: Pre-Commit CI Documentation Check
&lt;/h3&gt;

&lt;p&gt;Add &lt;code&gt;writ&lt;/code&gt; as an automated review step in your CI documentation pipelines to flag PR descriptions and markdown docs that lean too heavily on marketing adjectives.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Takeaways for Technical Writers
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Facts carry their own weight:&lt;/strong&gt; If a technical milestone is impressive, detailing the benchmark numbers will convince the reader. Describing it as &lt;em&gt;"groundbreaking"&lt;/em&gt; will not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read your sentences aloud:&lt;/strong&gt; If every sentence shares the exact same length and structure, your ear will catch what your eyes missed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit after drafting:&lt;/strong&gt; Write your rough draft without self-censorship, then run a systematic audit specifically hunting for stock vocabulary and participial clauses.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can inspect the rules, contribute heuristics, or download the full skill at &lt;a href="https://github.com/Avinashricky211/writ" rel="noopener noreferrer"&gt;&lt;strong&gt;github.com/Avinashricky211/writ&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Written by **Yadlapalli Avinash Ricky&lt;/em&gt;&lt;em&gt;, AI Engineer, Author of &lt;a href="https://avibook.online" rel="noopener noreferrer"&gt;The Art of AI Prompts&lt;/a&gt;, and creator of AviGPT-250M.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>promptengineering</category>
      <category>writing</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Stop Sounding Like an AI: Turning Wikipedia's AI Writing Guide into an Agent Skill</title>
      <dc:creator>Yadlapalli Avinash ricky</dc:creator>
      <pubDate>Sat, 05 Sep 2026 14:23:29 +0000</pubDate>
      <link>https://dev.to/yadlapalli_avinashricky/stop-sounding-like-an-ai-turning-wikipedias-ai-writing-guide-into-an-agent-skill-3elj</link>
      <guid>https://dev.to/yadlapalli_avinashricky/stop-sounding-like-an-ai-turning-wikipedias-ai-writing-guide-into-an-agent-skill-3elj</guid>
      <description>&lt;p&gt;Wikipedia editors have spent months cataloguing submissions to figure out what gives away AI-generated text. They compiled a detailed community guide called Signs of AI Writing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I turned that guide into an open-source self-edit agent skill called Writ:&lt;/strong&gt;&lt;br&gt;
👉 &lt;a href="https://github.com/Avinashricky211/writ" rel="noopener noreferrer"&gt;https://github.com/Avinashricky211/writ&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What it catches: • Stock vocabulary: "delve", "tapestry", "testament", "seamless", "robust", "game-changer"&lt;br&gt;
• The "not X, but Y" false-contrast habit: (e.g. "It's not just a tool, it's a revolution")&lt;br&gt;
• Tacked-on significance: (e.g. "...highlighting the shift toward modern efficiency")&lt;br&gt;
• Em dash overuse &amp;amp; flat sentence rhythm&lt;br&gt;
• Narrow transitions: over-reliance on moreover, furthermore, that said&lt;br&gt;
• Over-formatting: Unnecessary headers, bold text, and bullet points where plain prose reads better&lt;br&gt;
• Leftover assistant voice: ("I hope this helps!")&lt;/p&gt;

&lt;p&gt;How it works:&lt;br&gt;
Instead of rewriting things mechanically or sounding robotic, it runs as a silent self-edit pass right before your agent delivers text. It works with any agent framework that supports loadable skills (Claude Code, Antigravity, Cursor) or can simply be pasted into your system prompt.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/Avinashricky211/writ" rel="noopener noreferrer"&gt;https://github.com/Avinashricky211/writ&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback and contributions to the checklist are welcome!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>promptengineering</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
