<?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: gpt ai clips</title>
    <description>The latest articles on DEV Community by gpt ai clips (@gptaiclips).</description>
    <link>https://dev.to/gptaiclips</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%2F3934477%2F49cc3ae8-3d31-449f-8ce9-de663f7a78a2.gif</url>
      <title>DEV Community: gpt ai clips</title>
      <link>https://dev.to/gptaiclips</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gptaiclips"/>
    <language>en</language>
    <item>
      <title>From abandoned repos to a $87K Obsidian vault: a three-pass extraction pattern</title>
      <dc:creator>gpt ai clips</dc:creator>
      <pubDate>Sat, 16 May 2026 11:14:40 +0000</pubDate>
      <link>https://dev.to/gptaiclips/from-abandoned-repos-to-a-87k-obsidian-vault-a-three-pass-extraction-pattern-16f6</link>
      <guid>https://dev.to/gptaiclips/from-abandoned-repos-to-a-87k-obsidian-vault-a-three-pass-extraction-pattern-16f6</guid>
      <description>&lt;p&gt;Most of us have a folder full of repos that haven't been opened in months. Here is a pattern I have been using to turn those repos into a packaged developer product instead of guilt.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three-pass pipeline
&lt;/h2&gt;

&lt;p&gt;The core idea is to extract &lt;em&gt;decisions&lt;/em&gt;, not descriptions. A file-level summary is useless to a future reader — what they want is the implicit reasoning the original author was preserving.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pass 1 — file-level extraction
&lt;/h3&gt;

&lt;p&gt;For every file, ask the model for four things: purpose, public surface, hidden invariants, and a risk score from 1 to 5. The risk score is the secret ingredient — it forces the model to find load-bearing logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pass 2 — module-level clustering
&lt;/h3&gt;

&lt;p&gt;Feed all of pass 1 back in and ask for clusters of files that share invariants. Each cluster becomes an Architecture Decision Record (ADR) with status, context, decision, and consequences.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pass 3 — architecture-level graph
&lt;/h3&gt;

&lt;p&gt;Apply Leiden clustering across the ADRs to surface the cross-cutting concepts. Each graph node carries a one-paragraph 'why this matters to a maintainer' note. Leiden gives stabler cluster boundaries than vanilla modularity on small graphs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Sonnet 4.6 matters here
&lt;/h2&gt;

&lt;p&gt;With a 1M-token context window I can run the whole-repo pass without first summarizing per file. Per-file summarization is where cross-references die — once you compress, you lose the links the graph step depends on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Packaging into Obsidian
&lt;/h2&gt;

&lt;p&gt;Graphify (the Claude Code skill, ~37K stars) has an &lt;code&gt;--obsidian&lt;/code&gt; flag that writes the graph as a markdown vault with backlinks already wired up. Add ADR templates and you have a product, not a dump.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/j1x-wi8CzRM"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Three-tier pricing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;$0 — sampler vault with two ADRs and the graph view&lt;/li&gt;
&lt;li&gt;$49 — full vault with all ADRs and concept notes&lt;/li&gt;
&lt;li&gt;$149 — full vault plus raw prompts and ADR templates so the buyer can run the pipeline on their own code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Top developer vaults on Gumroad clear 3K+ copies a year, so the ceiling is real.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it on your own repo
&lt;/h2&gt;

&lt;p&gt;Checkout the &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;Graphify project&lt;/a&gt; and the longer walkthroughs over at &lt;a href="https://cptdigital.com" rel="noopener noreferrer"&gt;cptdigital.com&lt;/a&gt;. The bottleneck is almost always the prompt for pass 1, not the model.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
