<?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: XINMurat</title>
    <description>The latest articles on DEV Community by XINMurat (@xinmurat_4942570d69).</description>
    <link>https://dev.to/xinmurat_4942570d69</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3887825%2F64eb1365-d551-43ac-a58b-9cf474bf60b0.png</url>
      <title>DEV Community: XINMurat</title>
      <link>https://dev.to/xinmurat_4942570d69</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xinmurat_4942570d69"/>
    <language>en</language>
    <item>
      <title>I Built an AI Agent That Analyzes Your Entire Codebase in One Command</title>
      <dc:creator>XINMurat</dc:creator>
      <pubDate>Sun, 19 Apr 2026 20:34:02 +0000</pubDate>
      <link>https://dev.to/xinmurat_4942570d69/i-built-an-ai-agent-that-analyzes-your-entire-codebase-in-one-command-oil</link>
      <guid>https://dev.to/xinmurat_4942570d69/i-built-an-ai-agent-that-analyzes-your-entire-codebase-in-one-command-oil</guid>
      <description>&lt;h2&gt;
  
  
  From a static prompt library to a fully autonomous agentic framework — the story of Beyan v2.0
&lt;/h2&gt;

&lt;p&gt;Most code analysis tools tell you &lt;em&gt;what&lt;/em&gt; to look for. Beyan tells you &lt;em&gt;everything&lt;/em&gt; — automatically.&lt;/p&gt;

&lt;p&gt;I've been building &lt;a href="https://github.com/XINMurat/beyan" rel="noopener noreferrer"&gt;Beyan&lt;/a&gt;, an open-source agentic framework that scans your project, detects its tech stack, compiles a custom analysis prompt, and runs a deep technical audit — all in a single CLI command. No manual configuration. No copy-pasting prompts. Just point it at your codebase and let it work.&lt;/p&gt;

&lt;p&gt;Here's what that looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python cli/analyzer.py &lt;span class="nt"&gt;--target&lt;/span&gt; /your/project &lt;span class="nt"&gt;--mode&lt;/span&gt; 1 &lt;span class="nt"&gt;--lang&lt;/span&gt; en &lt;span class="nt"&gt;--api&lt;/span&gt; anthropic
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That one command produces a structured report covering security vulnerabilities, performance bottlenecks, code quality patterns, API design issues, accessibility gaps, and more — calibrated specifically for your project's tech stack.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem I Was Solving
&lt;/h2&gt;

&lt;p&gt;I started Beyan as a prompt library — v1.0 was a carefully structured collection of markdown prompts for technical audits. Each prompt was hand-crafted for a specific project type: web apps, OS/firmware, AI/ML research, DevOps infrastructure, blockchain, and so on.&lt;/p&gt;

&lt;p&gt;The core insight behind v1.0 was simple but powerful: &lt;strong&gt;applying the wrong analysis prompt gives you wrong results&lt;/strong&gt;. A security audit prompt designed for a React app doesn't ask the right questions about a Kubernetes cluster. Type-awareness matters.&lt;/p&gt;

&lt;p&gt;But v1.0 had a friction problem. Using it required:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reading the triage prompt to figure out which analysis to run&lt;/li&gt;
&lt;li&gt;Opening the right prompt file&lt;/li&gt;
&lt;li&gt;Copy-pasting it into your AI assistant&lt;/li&gt;
&lt;li&gt;Manually attaching your project files&lt;/li&gt;
&lt;li&gt;Repeating for each dimension (security, performance, etc.)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's 15-20 minutes of setup before you get a single line of analysis. For a daily tool, that's too much.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;v2.0 eliminates all of that.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How Beyan v2.0 Works
&lt;/h2&gt;

&lt;p&gt;The architecture has four layers:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Discovery Engine (&lt;code&gt;discovery.py&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Beyan scans your project directory and fingerprints it using a multi-stage detection system:&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="n"&gt;FINGERPRINTS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;node&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;files&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;package.json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;yarn.lock&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;extensions&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;.js&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;.ts&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;.jsx&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;.tsx&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;package.json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;'"&lt;/span&gt;&lt;span class="s"&gt;dependencies&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;:&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;infrastructure&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;files&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;main.tf&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;kustomization.yaml&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;extensions&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;.tf&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;.yaml&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;.yaml&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;apiVersion:|kind:\s*Deployment&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="c1"&gt;# ... 20+ technology fingerprints
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It goes beyond file extensions — it reads file &lt;em&gt;content&lt;/em&gt; to confirm. A &lt;code&gt;.yaml&lt;/code&gt; file only triggers the infrastructure modules if it actually contains Kubernetes or Terraform syntax. This prevents false positives.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Compiler (&lt;code&gt;compiler.py&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Once the tech stack is identified, the compiler loads the relevant analysis modules from &lt;code&gt;MANIFEST.yaml&lt;/code&gt; and assembles them into a single, context-dense prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;modules&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;security_analysis&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;priority&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;P0&lt;/span&gt;
    &lt;span class="na"&gt;auto_load_if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;production&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;handles_pii&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;financial&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
  &lt;span class="na"&gt;react_typescript_analysis&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;priority&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;P1&lt;/span&gt;
    &lt;span class="na"&gt;auto_load_if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;react&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;typescript&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;tsx&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;P0 modules always load. P1+ modules load based on detected tags. If the compiled prompt exceeds the LLM's token limit, low-priority modules are pruned automatically — no truncation, no silent failures.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Three Operating Modes
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Mode 1 — Analysis Only&lt;/strong&gt;: Generates a structured report. No code changes. Safe to run on any project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mode 2 — Analysis + Plan&lt;/strong&gt;: Runs the full analysis, then produces an &lt;code&gt;implementation_plan.md&lt;/code&gt; with sprint-ready task breakdowns:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Sprint 1 — Critical Fixes (P0)&lt;/span&gt;
| Task | File:Line | Effort | Risk |
|------|-----------|--------|------|
| Fix SQL injection in UserService | services/user.py:142 | 2h | High |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Mode 3 — Semi-Autonomous Fix&lt;/strong&gt;: The full agentic loop. Beyan analyzes, plans, writes code, runs tests, and commits — but pauses at three human checkpoints before touching anything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CHECKPOINT #1: "Here are the P0 issues. Proceed with auto-fix?"
CHECKPOINT #2: "Here's the diff. Apply this change?"  
CHECKPOINT #3: "Tests pass. Commit to branch fix/beyan-p0-2024?"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Safety rules are hard-coded: never touch database migration files, never modify production configs, max 20 files per run, always create a safety branch first.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Multi-Provider API Support
&lt;/h3&gt;

&lt;p&gt;Works with both OpenAI and Anthropic out of the box:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# OpenAI&lt;/span&gt;
python cli/analyzer.py &lt;span class="nt"&gt;--target&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--mode&lt;/span&gt; 1 &lt;span class="nt"&gt;--api&lt;/span&gt; openai

&lt;span class="c"&gt;# Anthropic  &lt;/span&gt;
python cli/analyzer.py &lt;span class="nt"&gt;--target&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--mode&lt;/span&gt; 3 &lt;span class="nt"&gt;--api&lt;/span&gt; anthropic
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Session persistence means Mode 3 can be interrupted and resumed — the conversation history is saved to &lt;code&gt;sessions/&lt;/code&gt; as JSON.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Module System
&lt;/h2&gt;

&lt;p&gt;Beyan ships with 52 analysis modules organized into six categories:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Core&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;td&gt;security, performance, database, UI/UX, accessibility&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Domain&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;web/mobile, DevOps, AI/ML, blockchain, OS/firmware&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Specialized&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;React+TypeScript, .NET Core, Turkish market compliance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Focus&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;security audit, performance audit, API audit, compliance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Testing&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;test generation, UI interaction tests, collaboration tests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Guides&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;security fixes, DB migration, performance optimization&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Every module follows the same two-layer analysis principle inherited from v1.0:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Descriptive layer&lt;/strong&gt;: Documents what exists, no judgment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evaluative layer&lt;/strong&gt;: Assesses quality, identifies gaps, produces recommendations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The evaluative layer never starts until the descriptive layer is complete. This prevents premature conclusions from contaminating the factual record.&lt;/p&gt;




&lt;h2&gt;
  
  
  The NOT DETECTED Contract
&lt;/h2&gt;

&lt;p&gt;One of Beyan's core principles, carried forward from v1.0: if information cannot be found in the codebase, the output &lt;em&gt;must&lt;/em&gt; say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;NOT DETECTED&lt;/strong&gt; — &lt;code&gt;[which file/directory was searched]&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Never guess. Never fabricate. This single rule is responsible for most of the hallucination resistance. An LLM that's forced to flag gaps instead of filling them with invented content produces dramatically more trustworthy output.&lt;/p&gt;




&lt;h2&gt;
  
  
  Token Budget Management
&lt;/h2&gt;

&lt;p&gt;Context windows are finite. Beyan handles this automatically:&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;prune_modules_by_priority&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;manifest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;modules_to_load&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lang&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# Remove P3 modules first, then P2
&lt;/span&gt;    &lt;span class="c1"&gt;# P0 and P1 are always preserved
&lt;/span&gt;    &lt;span class="n"&gt;p3_mods&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;modules_to_load&lt;/span&gt; 
               &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;manifest&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;modules&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;priority&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;P3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;p3_mods&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;modules_to_load&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;remove&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p3_mods&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;modules_to_load&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The analyzer loop runs this iteratively until the compiled prompt fits within the configured token limit. You get the most important analysis every time, regardless of project size.&lt;/p&gt;




&lt;h2&gt;
  
  
  Quick Start
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone&lt;/span&gt;
git clone https://github.com/XINMurat/beyan.git
&lt;span class="nb"&gt;cd &lt;/span&gt;beyan/v2

&lt;span class="c"&gt;# Install&lt;/span&gt;
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

&lt;span class="c"&gt;# Set your API key&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;your_key_here
&lt;span class="c"&gt;# or&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;your_key_here

&lt;span class="c"&gt;# Run analysis on any project&lt;/span&gt;
python cli/analyzer.py &lt;span class="nt"&gt;--target&lt;/span&gt; /path/to/your/project &lt;span class="nt"&gt;--mode&lt;/span&gt; 1 &lt;span class="nt"&gt;--lang&lt;/span&gt; en &lt;span class="nt"&gt;--api&lt;/span&gt; anthropic
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The compiled prompt is also saved to &lt;code&gt;beyan_compiled_prompt.md&lt;/code&gt; so you can inspect exactly what gets sent to the LLM — full transparency, no black boxes.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Still in v1.0
&lt;/h2&gt;

&lt;p&gt;The original prompt library lives in &lt;code&gt;en/&lt;/code&gt; and &lt;code&gt;tr/&lt;/code&gt; — 15 hand-crafted prompts covering every project type. If you want to run a manual deep-dive audit without the CLI, those are still there. v2.0 uses them as its knowledge base; they didn't go anywhere.&lt;/p&gt;

&lt;p&gt;The self-referential development story is also documented: Beyan v1.0 was audited using its own Meta Audit prompt before release. Health score went from 2.45 to 4.75 after applying the findings. The full cycle is in &lt;code&gt;tr/meta-analysis/&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;A few things on the roadmap:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PyPI package&lt;/strong&gt; — &lt;code&gt;pip install beyan-agentic&lt;/code&gt; is coming&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Actions integration&lt;/strong&gt; — run Beyan as a CI step on every PR&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More domain modules&lt;/strong&gt; — game engine analysis, mobile-native deep dive&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web UI&lt;/strong&gt; — for teams who don't want a CLI&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/XINMurat/beyan" rel="noopener noreferrer"&gt;github.com/XINMurat/beyan&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quick Start&lt;/strong&gt;: &lt;code&gt;beyan/v2/QUICK_START.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Turkish README&lt;/strong&gt;: &lt;code&gt;README_TR.md&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you try it on your project, I'd genuinely love to hear what the output looks like. Open an issue, start a discussion, or just drop a comment here.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with Claude, audited with Beyan, shipped with way too many git branch adventures.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>opensource</category>
      <category>devtools</category>
    </item>
  </channel>
</rss>
