<?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: EliotShift</title>
    <description>The latest articles on DEV Community by EliotShift (@eliotshift).</description>
    <link>https://dev.to/eliotshift</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%2F3830230%2Fc0dcbc89-f089-4b12-baae-62772bc18fdf.jpeg</url>
      <title>DEV Community: EliotShift</title>
      <link>https://dev.to/eliotshift</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eliotshift"/>
    <language>en</language>
    <item>
      <title>I Built a Code Archaeology Engine for AI — Here's Why Claude and Cursor Keep Forgetting Your Architecture</title>
      <dc:creator>EliotShift</dc:creator>
      <pubDate>Fri, 17 Apr 2026 16:57:41 +0000</pubDate>
      <link>https://dev.to/eliotshift/i-built-a-code-archaeology-engine-for-ai-heres-why-claude-and-cursor-keep-forgetting-your-2in8</link>
      <guid>https://dev.to/eliotshift/i-built-a-code-archaeology-engine-for-ai-heres-why-claude-and-cursor-keep-forgetting-your-2in8</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; AI coding assistants have zero architectural memory. Every session starts from scratch. I built LORE — an open-source MCP server with 13 analyzers that gives your AI deep understanding of your codebase structure. Works with Claude Desktop, Cursor, and Windsurf.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem: AI Has Amnesia
&lt;/h2&gt;

&lt;p&gt;Every time you start a new AI coding session, the same ritual happens.&lt;/p&gt;

&lt;p&gt;You explain: &lt;em&gt;"We use PostgreSQL because..."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Then: &lt;em&gt;"Auth uses JWT with 24h expiry..."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And: &lt;em&gt;"Our API follows REST with /api/v1/..."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The AI nods, understands, writes some code. Session ends.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next session? Complete amnesia.&lt;/strong&gt; You repeat everything. Again. And again.&lt;/p&gt;

&lt;p&gt;After the 50th time, I stopped explaining and started building.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Built: LORE MCP Server
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;LORE&lt;/strong&gt; (Layout-Oriented Reverse Engineering) is a code archaeology engine that reads your TypeScript/JavaScript codebase and extracts deep architectural intelligence — automatically.&lt;/p&gt;

&lt;p&gt;No manual documentation. No prompts to paste. No CLAUDE.md files to maintain.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx lore-mcp init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's the setup. One command. LORE scans your entire project, runs 13 parallel analyzers, and feeds structured results to your AI assistant through the Model Context Protocol.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Does LORE Actually Analyze?
&lt;/h2&gt;

&lt;p&gt;LORE isn't a simple dependency checker. It runs 13 deep analyzers in parallel:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Analyzer&lt;/th&gt;
&lt;th&gt;What It Finds&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;AST Parser&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Full TypeScript/TSX structure via ts-morph&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Dependency Graph&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Every import, export, re-export in your project&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Circular Dependencies&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Import cycles ranked by severity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Dependency Direction&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Layer violations (controller importing DB code)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Shannon Entropy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Complexity scoring per file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Hotspot Analysis&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Files that change too often (git churn)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Import Impact&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Downstream blast radius of every import&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Type Safety Scorer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;any&lt;/code&gt; usage, explicit types, strictness grades&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Hidden Coupling&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Implicit dependencies through shared types&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;AI Recommendations&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Prioritized fix suggestions (P0–P3)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Tooling Config&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;ESLint, Prettier, tsconfig validation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Breaking Changes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High-risk deprecation patterns&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Gap Analysis&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Missing error handling, testing gaps&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Here's what &lt;code&gt;lore status&lt;/code&gt; looks like on a real project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;lore status
&lt;span class="go"&gt;
  LORE MCP Server v0.1.6
  ────────────────────────────────────

  Architecture Analysis Complete

  ├─ Overall Score:      87/100
  ├─ Type Safety:        92/100
  ├─ Tooling Config:     78/100
  └─ Architecture:       91/100

  Circular Dependencies: 3 found (2 critical)
  Hotspot Modules:       5 detected
  Hidden Coupling:       8 links
  AI Recommendations:    12 suggestions

  Analysis complete — 0 errors, 0 crashes
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  How It Works: 3 Steps
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Scan Your Codebase
&lt;/h3&gt;

&lt;p&gt;LORE recursively walks your project tree, parsing every &lt;code&gt;.ts&lt;/code&gt; and &lt;code&gt;.tsx&lt;/code&gt; file. It reads your AST, maps imports/exports, tracks types, and understands your configuration files.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Run 13 Analyzers in Parallel
&lt;/h3&gt;

&lt;p&gt;All 13 analyzers fire simultaneously through a plugin pipeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Coupling matrices are computed&lt;/li&gt;
&lt;li&gt;Dependency graphs are mapped&lt;/li&gt;
&lt;li&gt;Hotspot scoring runs against your git history&lt;/li&gt;
&lt;li&gt;Type safety is evaluated across every file&lt;/li&gt;
&lt;li&gt;Circular dependencies are detected and ranked&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 3: Feed Results to Your AI
&lt;/h3&gt;

&lt;p&gt;Via MCP, Claude Desktop, Cursor, or Windsurf queries LORE on-demand. Your AI now reasons about &lt;strong&gt;real structural data&lt;/strong&gt; — not guesses.&lt;/p&gt;

&lt;p&gt;Ask Claude:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;"What are the hidden coupling risks in my codebase?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Which modules are the biggest hotspots?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Show me all circular dependencies and their severity."&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"What are the P0 recommendations?"&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;LORE runs the analysis and returns structured data. Claude interprets it and gives you actionable answers.&lt;/p&gt;




&lt;h2&gt;
  
  
  MCP Integration (60-Second Setup)
&lt;/h2&gt;

&lt;p&gt;Add LORE to your MCP client configuration:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Desktop&lt;/strong&gt; (&lt;code&gt;~/Library/Application Support/Claude/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;"lore"&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;"lore-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;&lt;strong&gt;Cursor&lt;/strong&gt; — Add to your MCP settings:&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;"lore"&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;"lore-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;Restart your AI tool. That's it. Your AI now has architectural memory.&lt;/p&gt;




&lt;h2&gt;
  
  
  Battle-Tested on Real Projects
&lt;/h2&gt;

&lt;p&gt;LORE isn't a toy. I tested it on 16 major open-source TypeScript projects:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;Files Analyzed&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Express&lt;/td&gt;
&lt;td&gt;42&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next.js&lt;/td&gt;
&lt;td&gt;68&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NestJS&lt;/td&gt;
&lt;td&gt;38&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fastify&lt;/td&gt;
&lt;td&gt;55&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prisma&lt;/td&gt;
&lt;td&gt;45&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zod&lt;/td&gt;
&lt;td&gt;35&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TypeORM&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;React&lt;/td&gt;
&lt;td&gt;73&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;16 projects. 100% pass rate. Zero crashes.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Cross-Platform: Runs Everywhere
&lt;/h2&gt;

&lt;p&gt;LORE is built on Node.js with zero native dependencies. If Node.js runs on your system, LORE runs too.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;macOS (Intel + Apple Silicon M1/M2/M3/M4)&lt;/li&gt;
&lt;li&gt;All Linux distros (Ubuntu, Debian, Kali, Fedora, Arch, CentOS, Alpine)&lt;/li&gt;
&lt;li&gt;Windows 10/11&lt;/li&gt;
&lt;li&gt;CI/CD pipelines (GitHub Actions, GitLab CI, Jenkins)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Only requirement: Node.js 18+.&lt;/strong&gt; No Docker, no VM, no Rosetta.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language:&lt;/strong&gt; TypeScript 5.5+&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AST Parsing:&lt;/strong&gt; ts-morph 21&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Protocol:&lt;/strong&gt; Model Context Protocol (MCP) SDK 1.0&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transport:&lt;/strong&gt; Stdio (Claude Desktop / IDE compatible)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validation:&lt;/strong&gt; Zod schemas&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output:&lt;/strong&gt; ANSI terminal, Markdown, SARIF&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  CLI Commands
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;lore &lt;span class="o"&gt;[&lt;/span&gt;path]            &lt;span class="c"&gt;# Analyze project (default: cwd)&lt;/span&gt;
lore init              &lt;span class="c"&gt;# Extract architectural decisions&lt;/span&gt;
lore status            &lt;span class="c"&gt;# View decisions by category&lt;/span&gt;
lore diff              &lt;span class="c"&gt;# Diff against saved baseline&lt;/span&gt;
lore doctor            &lt;span class="c"&gt;# Environment + tooling check&lt;/span&gt;
lore doctor &lt;span class="nt"&gt;--fix&lt;/span&gt;      &lt;span class="c"&gt;# Auto-fix project setup&lt;/span&gt;
lore watch             &lt;span class="c"&gt;# Watch + re-analyze on change&lt;/span&gt;
lore mcp inspect       &lt;span class="c"&gt;# Inspect MCP server setup&lt;/span&gt;
lore mcp config        &lt;span class="c"&gt;# Claude Desktop config snippet&lt;/span&gt;
lore version           &lt;span class="c"&gt;# Show version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Open Source &amp;amp; Local-First
&lt;/h2&gt;

&lt;p&gt;LORE is &lt;strong&gt;100% open source&lt;/strong&gt; under MIT license. No data leaves your machine. No cloud. No API keys. No telemetry.&lt;/p&gt;

&lt;p&gt;Everything runs locally. Your code never gets sent anywhere.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;[ ] LORE INTEGRITY — verify decisions are actually implemented&lt;/li&gt;
&lt;li&gt;[ ] VS Code Extension&lt;/li&gt;
&lt;li&gt;[ ] LORE NETWORK — share anonymous architectural patterns&lt;/li&gt;
&lt;li&gt;[ ] Plugin API — write your own analyzers&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Try It Now
&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;# No install needed&lt;/span&gt;
npx lore-mcp init

&lt;span class="c"&gt;# Or install globally&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; lore-mcp
lore status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/EliotShift/lore-mcp" rel="noopener noreferrer"&gt;github.com/EliotShift/lore-mcp&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;npm:&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/lore-mcp" rel="noopener noreferrer"&gt;npmjs.com/package/lore-mcp&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://eliotshift.github.io/lore-mcp/" rel="noopener noreferrer"&gt;eliotshift.github.io/lore-mcp&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Built with care from Morocco.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you found this useful, give LORE a star on GitHub. It helps more than you think.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>ai</category>
      <category>devtools</category>
      <category>mcp</category>
    </item>
    <item>
      <title>I Built a Code Archaeology Engine for AI — Here's Why Claude and Cursor Keep Forgetting Your Architecture</title>
      <dc:creator>EliotShift</dc:creator>
      <pubDate>Fri, 17 Apr 2026 16:47:16 +0000</pubDate>
      <link>https://dev.to/eliotshift/i-built-a-code-archaeology-engine-for-ai-heres-why-claude-and-cursor-keep-forgetting-your-oa8</link>
      <guid>https://dev.to/eliotshift/i-built-a-code-archaeology-engine-for-ai-heres-why-claude-and-cursor-keep-forgetting-your-oa8</guid>
      <description>&lt;h1&gt;
  
  
  I Built a Code Archaeology Engine for AI — Here's Why Claude and Cursor Keep Forgetting Your Architecture
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; AI coding assistants have zero architectural memory.&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.amazonaws.com%2Fuploads%2Farticles%2Fa2i303hcewp0x7hvpfx4.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.amazonaws.com%2Fuploads%2Farticles%2Fa2i303hcewp0x7hvpfx4.png" alt="LORE MCP Server Cover"&gt;&lt;/a&gt; Every session starts from scratch. I built LORE — an open-source MCP server with 13 analyzers that gives your AI deep understanding of your codebase structure. Works with Claude Desktop, Cursor, and Windsurf.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem: AI Has Amnesia
&lt;/h2&gt;

&lt;p&gt;Every time you start a new AI coding session, the same ritual happens.&lt;/p&gt;

&lt;p&gt;You explain: &lt;em&gt;"We use PostgreSQL because..."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Then: &lt;em&gt;"Auth uses JWT with 24h expiry..."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And: &lt;em&gt;"Our API follows REST with /api/v1/..."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The AI nods, understands, writes some code. Session ends.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next session? Complete amnesia.&lt;/strong&gt; You repeat everything. Again. And again.&lt;/p&gt;

&lt;p&gt;After the 50th time, I stopped explaining and started building.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Built: LORE MCP Server
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;LORE&lt;/strong&gt; (Layout-Oriented Reverse Engineering) is a code archaeology engine that reads your TypeScript/JavaScript codebase and extracts deep architectural intelligence — automatically.&lt;/p&gt;

&lt;p&gt;No manual documentation. No prompts to paste. No CLAUDE.md files to maintain.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx lore-mcp init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's the setup. One command. LORE scans your entire project, runs 13 parallel analyzers, and feeds structured results to your AI assistant through the Model Context Protocol.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Does LORE Actually Analyze?
&lt;/h2&gt;

&lt;p&gt;LORE isn't a simple dependency checker. It runs 13 deep analyzers in parallel:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Analyzer&lt;/th&gt;
&lt;th&gt;What It Finds&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;AST Parser&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Full TypeScript/TSX structure via ts-morph&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Dependency Graph&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Every import, export, re-export in your project&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Circular Dependencies&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Import cycles ranked by severity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Dependency Direction&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Layer violations (controller importing DB code)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Shannon Entropy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Complexity scoring per file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Hotspot Analysis&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Files that change too often (git churn)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Import Impact&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Downstream blast radius of every import&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Type Safety Scorer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;any&lt;/code&gt; usage, explicit types, strictness grades&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Hidden Coupling&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Implicit dependencies through shared types&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;AI Recommendations&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Prioritized fix suggestions (P0–P3)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Tooling Config&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;ESLint, Prettier, tsconfig validation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Breaking Changes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High-risk deprecation patterns&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Gap Analysis&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Missing error handling, testing gaps&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Here's what &lt;code&gt;lore status&lt;/code&gt; looks like on a real project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;lore status
&lt;span class="go"&gt;
  LORE MCP Server v0.1.6
  ────────────────────────────────────

  Architecture Analysis Complete

  ├─ Overall Score:      87/100
  ├─ Type Safety:        92/100
  ├─ Tooling Config:     78/100
  └─ Architecture:       91/100

  Circular Dependencies: 3 found (2 critical)
  Hotspot Modules:       5 detected
  Hidden Coupling:       8 links
  AI Recommendations:    12 suggestions

  Analysis complete — 0 errors, 0 crashes
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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.amazonaws.com%2Fuploads%2Farticles%2Fh4igpjoq6f90j5h1vf1j.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.amazonaws.com%2Fuploads%2Farticles%2Fh4igpjoq6f90j5h1vf1j.png" alt="LORE Status Terminal"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Real output from &lt;code&gt;lore status&lt;/code&gt; on Express.js project&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Works: 3 Steps
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Scan Your Codebase
&lt;/h3&gt;

&lt;p&gt;LORE recursively walks your project tree, parsing every &lt;code&gt;.ts&lt;/code&gt; and &lt;code&gt;.tsx&lt;/code&gt; file. It reads your AST, maps imports/exports, tracks types, and understands your configuration files.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Run 13 Analyzers in Parallel
&lt;/h3&gt;

&lt;p&gt;All 13 analyzers fire simultaneously through a plugin pipeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Coupling matrices are computed&lt;/li&gt;
&lt;li&gt;Dependency graphs are mapped&lt;/li&gt;
&lt;li&gt;Hotspot scoring runs against your git history&lt;/li&gt;
&lt;li&gt;Type safety is evaluated across every file&lt;/li&gt;
&lt;li&gt;Circular dependencies are detected and ranked&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 3: Feed Results to Your AI
&lt;/h3&gt;

&lt;p&gt;Via MCP, Claude Desktop, Cursor, or Windsurf queries LORE on-demand. Your AI now reasons about &lt;strong&gt;real structural data&lt;/strong&gt; — not guesses.&lt;/p&gt;

&lt;p&gt;Ask Claude:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;"What are the hidden coupling risks in my codebase?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Which modules are the biggest hotspots?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Show me all circular dependencies and their severity."&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"What are the P0 recommendations?"&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;LORE runs the analysis and returns structured data. Claude interprets it and gives you actionable answers.&lt;/p&gt;




&lt;h2&gt;
  
  
  MCP Integration (60-Second Setup)
&lt;/h2&gt;

&lt;p&gt;Add LORE to your MCP client configuration:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Desktop&lt;/strong&gt; (&lt;code&gt;~/Library/Application Support/Claude/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;"lore"&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;"lore-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;&lt;strong&gt;Cursor&lt;/strong&gt; — Add to your MCP settings:&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;"lore"&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;"lore-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;Restart your AI tool. That's it. Your AI now has architectural memory.&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.amazonaws.com%2Fuploads%2Farticles%2Fxyftblb9dv0dnqdkuzaq.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.amazonaws.com%2Fuploads%2Farticles%2Fxyftblb9dv0dnqdkuzaq.png" alt="Dependency Graph"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;LORE generates dependency graphs showing module relationships&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Battle-Tested on Real Projects
&lt;/h2&gt;

&lt;p&gt;LORE isn't a toy. I tested it on 16 major open-source TypeScript projects:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;Files Analyzed&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Express&lt;/td&gt;
&lt;td&gt;42&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next.js&lt;/td&gt;
&lt;td&gt;68&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NestJS&lt;/td&gt;
&lt;td&gt;38&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fastify&lt;/td&gt;
&lt;td&gt;55&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prisma&lt;/td&gt;
&lt;td&gt;45&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zod&lt;/td&gt;
&lt;td&gt;35&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TypeORM&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;React&lt;/td&gt;
&lt;td&gt;73&lt;/td&gt;
&lt;td&gt;100% Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;16 projects. 100% pass rate. Zero crashes.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Cross-Platform: Runs Everywhere
&lt;/h2&gt;

&lt;p&gt;LORE is built on Node.js with zero native dependencies. If Node.js runs on your system, LORE runs too.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;macOS (Intel + Apple Silicon M1/M2/M3/M4)&lt;/li&gt;
&lt;li&gt;All Linux distros (Ubuntu, Debian, Kali, Fedora, Arch, CentOS, Alpine)&lt;/li&gt;
&lt;li&gt;Windows 10/11&lt;/li&gt;
&lt;li&gt;CI/CD pipelines (GitHub Actions, GitLab CI, Jenkins)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Only requirement: Node.js 18+.&lt;/strong&gt; No Docker, no VM, no Rosetta.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language:&lt;/strong&gt; TypeScript 5.5+&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AST Parsing:&lt;/strong&gt; ts-morph 21&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Protocol:&lt;/strong&gt; Model Context Protocol (MCP) SDK 1.0&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transport:&lt;/strong&gt; Stdio (Claude Desktop / IDE compatible)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validation:&lt;/strong&gt; Zod schemas&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output:&lt;/strong&gt; ANSI terminal, Markdown, SARIF&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  CLI Commands
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;lore &lt;span class="o"&gt;[&lt;/span&gt;path]            &lt;span class="c"&gt;# Analyze project (default: cwd)&lt;/span&gt;
lore init              &lt;span class="c"&gt;# Extract architectural decisions&lt;/span&gt;
lore status            &lt;span class="c"&gt;# View decisions by category&lt;/span&gt;
lore diff              &lt;span class="c"&gt;# Diff against saved baseline&lt;/span&gt;
lore doctor            &lt;span class="c"&gt;# Environment + tooling check&lt;/span&gt;
lore doctor &lt;span class="nt"&gt;--fix&lt;/span&gt;      &lt;span class="c"&gt;# Auto-fix project setup&lt;/span&gt;
lore watch             &lt;span class="c"&gt;# Watch + re-analyze on change&lt;/span&gt;
lore mcp inspect       &lt;span class="c"&gt;# Inspect MCP server setup&lt;/span&gt;
lore mcp config        &lt;span class="c"&gt;# Claude Desktop config snippet&lt;/span&gt;
lore version           &lt;span class="c"&gt;# Show version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Open Source &amp;amp; Local-First
&lt;/h2&gt;

&lt;p&gt;LORE is &lt;strong&gt;100% open source&lt;/strong&gt; under MIT license. No data leaves your machine. No cloud. No API keys. No telemetry.&lt;/p&gt;

&lt;p&gt;Everything runs locally. Your code never gets sent anywhere.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;[ ] LORE INTEGRITY — verify decisions are actually implemented&lt;/li&gt;
&lt;li&gt;[ ] VS Code Extension&lt;/li&gt;
&lt;li&gt;[ ] LORE NETWORK — share anonymous architectural patterns&lt;/li&gt;
&lt;li&gt;[ ] Plugin API — write your own analyzers&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Try It Now
&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;# No install needed&lt;/span&gt;
npx lore-mcp init

&lt;span class="c"&gt;# Or install globally&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; lore-mcp
lore status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/EliotShift/lore-mcp" rel="noopener noreferrer"&gt;github.com/EliotShift/lore-mcp&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;npm:&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/lore-mcp" rel="noopener noreferrer"&gt;npmjs.com/package/lore-mcp&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://eliotshift.github.io/lore-mcp/" rel="noopener noreferrer"&gt;eliotshift.github.io/lore-mcp&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Built with care from Morocco.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you found this useful, give LORE a star on GitHub. It helps more than you think.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>devtools</category>
      <category>mcp</category>
    </item>
    <item>
      <title>How do you give your AI coding assistant context about your project architecture?</title>
      <dc:creator>EliotShift</dc:creator>
      <pubDate>Wed, 18 Mar 2026 01:53:57 +0000</pubDate>
      <link>https://dev.to/eliotshift/how-do-you-give-your-ai-coding-assistant-context-about-your-project-architecture-389b</link>
      <guid>https://dev.to/eliotshift/how-do-you-give-your-ai-coding-assistant-context-about-your-project-architecture-389b</guid>
      <description>&lt;p&gt;Every time I open a new Claude Code or Cursor session,&lt;br&gt;
I spend the first 10 minutes explaining my project.&lt;/p&gt;

&lt;p&gt;"We use PostgreSQL because..."&lt;br&gt;
"Auth is JWT with 24h expiry..."&lt;br&gt;
"Please follow REST conventions..."&lt;/p&gt;

&lt;p&gt;How do YOU handle this?&lt;/p&gt;

&lt;p&gt;Do you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write a CLAUDE.md manually?&lt;/li&gt;
&lt;li&gt;Paste context every session?&lt;/li&gt;
&lt;li&gt;Use a specific prompt template?&lt;/li&gt;
&lt;li&gt;Something else entirely?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I got tired of repeating myself and built LORE —&lt;br&gt;
an MCP server that reads your codebase and &lt;br&gt;
extracts these decisions automatically.&lt;/p&gt;

&lt;p&gt;But curious what the community does.&lt;br&gt;
What's your approach?&lt;/p&gt;

&lt;p&gt;github.com/EliotShift/lore-mcp&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>devtools</category>
      <category>ai</category>
      <category>mcp</category>
    </item>
    <item>
      <title>Why I built LORE: AI keeps forgetting why your code exists</title>
      <dc:creator>EliotShift</dc:creator>
      <pubDate>Wed, 18 Mar 2026 01:34:04 +0000</pubDate>
      <link>https://dev.to/eliotshift/why-i-built-lore-ai-keeps-forgetting-why-your-code-exists-3cco</link>
      <guid>https://dev.to/eliotshift/why-i-built-lore-ai-keeps-forgetting-why-your-code-exists-3cco</guid>
      <description>&lt;p&gt;Every time I start a new AI coding session, I have to explain everything from scratch.&lt;/p&gt;

&lt;p&gt;"We use PostgreSQL because..."&lt;br&gt;
"Our auth uses JWT with 24h expiry..."&lt;br&gt;
"The API follows REST with /api/v1/..."&lt;/p&gt;

&lt;p&gt;The AI forgets. Every. Single. Time.&lt;/p&gt;

&lt;p&gt;After the 50th time explaining the same decisions, I built LORE.&lt;/p&gt;
&lt;h2&gt;
  
  
  What is LORE?
&lt;/h2&gt;

&lt;p&gt;LORE is an MCP server that reads your existing codebase and automatically extracts architectural decisions — no manual work needed.&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="nb"&gt;cd &lt;/span&gt;your-project
lore init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. LORE generates a &lt;code&gt;LORE.md&lt;/code&gt; with everything your AI needs to know:&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;## Database&lt;/span&gt;
&lt;span class="gu"&gt;### 🟢 PostgreSQL as primary database&lt;/span&gt;
&lt;span class="gs"&gt;**Why**&lt;/span&gt;: Found pg/postgres in dependencies
&lt;span class="gs"&gt;**Rules**&lt;/span&gt;: Use connection pooling always

&lt;span class="gu"&gt;## Authentication&lt;/span&gt;
&lt;span class="gu"&gt;### 🟢 JWT-based authentication&lt;/span&gt;
&lt;span class="gs"&gt;**Rules**&lt;/span&gt;: Never store secrets in code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Problem It Solves
&lt;/h2&gt;

&lt;p&gt;AI coding tools like Claude Code and Cursor are powerful. But they have zero memory between sessions.&lt;/p&gt;

&lt;p&gt;Every new session = complete amnesia.&lt;/p&gt;

&lt;p&gt;Your team spent months deciding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why PostgreSQL over MongoDB&lt;/li&gt;
&lt;li&gt;Why JWT over sessions&lt;/li&gt;
&lt;li&gt;Why Zod over Yup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The next AI session knows none of this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LORE remembers so you don't have to repeat yourself.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;LORE reads your:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;package.json&lt;/code&gt; → detects frameworks, libraries, databases&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.env.example&lt;/code&gt; → detects security patterns&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;docker-compose.yml&lt;/code&gt; → detects deployment decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then generates a structured &lt;code&gt;LORE.md&lt;/code&gt; that plugs directly into your MCP settings.&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;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; lore-mcp
&lt;span class="nb"&gt;cd &lt;/span&gt;your-project
lore init
lore status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  MCP Integration (Claude Code / Cursor)
&lt;/h2&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;"lore"&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;"node"&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;"/path/to/lore-mcp/dist/index.js"&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;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;lore doctor&lt;/code&gt; — diagnose setup issues ✅&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;lore status&lt;/code&gt; — view all decisions ✅
&lt;/li&gt;
&lt;li&gt;LORE INTEGRITY — verify decisions are actually implemented in code&lt;/li&gt;
&lt;li&gt;VS Code Extension&lt;/li&gt;
&lt;li&gt;LORE NETWORK — share anonymous architectural patterns&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Open Source
&lt;/h2&gt;

&lt;p&gt;LORE is fully open source and local-first. No data leaves your machine.&lt;/p&gt;

&lt;p&gt;⭐ &lt;a href="https://github.com/EliotShift/lore-mcp" rel="noopener noreferrer"&gt;github.com/EliotShift/lore-mcp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Built in one day from Morocco 🇲🇦&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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