<?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: Clemente Nogueira</title>
    <description>The latest articles on DEV Community by Clemente Nogueira (@hermeszum).</description>
    <link>https://dev.to/hermeszum</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%2F3967074%2Fb81f3b52-0f9b-410c-9dcc-4b26cbb09a41.jpeg</url>
      <title>DEV Community: Clemente Nogueira</title>
      <link>https://dev.to/hermeszum</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hermeszum"/>
    <language>en</language>
    <item>
      <title>GitHub Copilot AI Credits Billing Explained: What's Free, What's Metered, and My Hybrid Claude Code Workflow</title>
      <dc:creator>Clemente Nogueira</dc:creator>
      <pubDate>Tue, 16 Jun 2026 10:43:23 +0000</pubDate>
      <link>https://dev.to/hermeszum/github-copilot-ai-credits-billing-explained-whats-free-whats-metered-and-my-hybrid-claude-code-2ooo</link>
      <guid>https://dev.to/hermeszum/github-copilot-ai-credits-billing-explained-whats-free-whats-metered-and-my-hybrid-claude-code-2ooo</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;On June 1, 2026, GitHub Copilot switched from flat-rate pricing to a token-based "AI Credits" system, and the community forum responded with over 900 downvotes. Most of the outrage is aimed at the wrong target. Code completions are still unlimited on every plan. What actually changed is chat, agent mode, and PR review — and the real complaint isn't the price, it's the unpredictability. This article breaks down the actual numbers, what's still free, where the AI coding tools market stands in June 2026, and the hybrid Copilot + Claude Code workflow — anchored by a single &lt;code&gt;AGENTS.md&lt;/code&gt; file — that I switched to as a result.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;GitHub officially moved Copilot from a flat subscription to usage-based AI Credits on June 1. The community forum thread reacting to it crossed 900 downvotes within days. That's a strong signal, but it's worth pausing before reacting to forum sentiment alone, because a chunk of that anger is based on an incomplete picture of what actually changed.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually changed
&lt;/h2&gt;

&lt;p&gt;The new model is straightforward on paper: one AI Credit equals one US cent, and each plan's base allowance is set above the subscription price rather than equal to it. The $10 Copilot Pro plan now comes with 1,500 AI Credits per month — worth $15 at that rate. I'm on the Pro+ tier myself, at $39/month for 7,000 credits, worth $70. On paper that's generous. In practice, it's exactly where the burn rate becomes a real concern, because the headline number looks like more room than agentic workflows actually use.&lt;/p&gt;

&lt;p&gt;There's a second change worth flagging alongside the billing shift: GitHub deprecated GPT-4.1 across every Copilot surface on June 1 — chat, inline edits, ask mode, agent mode, and code completions. If you had a specific reason to be on that model, it's gone.&lt;/p&gt;

&lt;p&gt;Here's the part that actually matters, though. The core complaint isn't the price — most developers won't blow through their credits under normal day-to-day use. The complaint is unpredictability. A flat rate means you know your spend before the month starts. A credit system means your spend depends on what you do, which model handles it, and how long your prompts run. Run out mid-sprint, and you're blocked until the cycle resets. That shift from certainty to metered uncertainty is the legitimate part of the frustration, and it's worth taking seriously even if the framing on the forum skews toward outrage over analysis.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's still free vs. what burns credits
&lt;/h2&gt;

&lt;p&gt;This is the detail most of the discourse is skipping past, and it changes how you should actually respond to the change.&lt;/p&gt;

&lt;p&gt;Inline completions — ghost text, Next Edit Suggestions — are still unlimited across every paid Copilot plan. These were the original features that made Copilot what it is, and they don't touch your credit balance at all.&lt;/p&gt;

&lt;p&gt;Three things do burn credits: chat (asking Copilot questions in the sidebar), agentic workflows (multi-step tasks run through agent mode), and code review (having Copilot review your pull requests).&lt;/p&gt;

&lt;p&gt;So the useful question isn't "is this bad?" — it's "where do I actually spend my AI time?" If your workflow leans on ghost text with the occasional chat question, this change probably barely touches you. If you've built your workflow around agent mode for long-running, multi-step tasks — which is exactly what I had done — you'll feel it. In my case, I'd already built a library of reusable agent prompts, and under the new pricing I can no longer run them in a way that's financially sustainable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the AI coding tools market stands in June 2026
&lt;/h2&gt;

&lt;p&gt;The Copilot billing change doesn't exist in isolation — the whole AI coding tools landscape has shifted noticeably over the past six months.&lt;/p&gt;

&lt;p&gt;According to JetBrains' AI Pulse survey of over 10,000 professional developers, Claude Code now holds the highest product loyalty metrics in the category: a 91% CSAT score and an NPS of 54 (NPS runs from -100 to +100, so 54 is exceptional for any developer tool). On actual workplace adoption, Claude Code and Cursor are now tied at 18% each, up from roughly 3% for Claude Code in mid-2025 — a 6x jump in six months. Copilot is still the most widely adopted tool overall at 29%, but that growth has stalled; both awareness and adoption have flattened.&lt;/p&gt;

&lt;p&gt;Cursor has crossed $2B in annualized revenue and introduced parallel agents, letting you run up to eight agents simultaneously across different parts of your codebase through a visual dashboard. Windsurf rebranded entirely to Devin Desktop on June 2, with Cognition retiring the Windsurf brand and replacing the original local agent (Cascade) with a Rust-rewritten Devin Local.&lt;/p&gt;

&lt;p&gt;The open-source side had its own shake-up this spring. Roo Code — one of the most-loved open-source coding agents — shut down completely on May 15 and had its GitHub repo archived, with its team pointing users toward Cline and a fork called Kilo Code. A third project, OpenCode, quietly became the most-starred open-source coding agent on GitHub, north of 160,000 stars, running entirely in the terminal. Amazon also threw a free agentic IDE into the mix with Kiro.&lt;/p&gt;

&lt;p&gt;The number that reframes the whole conversation: developers today use an average of 2.3 AI tools simultaneously. Not one tool winning everything — a combination. Which means the real question was never "which tool is best?" It's "what is each tool best at, and how do I combine them?"&lt;/p&gt;

&lt;h2&gt;
  
  
  My hybrid workflow: AGENTS.md + Claude Code + Copilot
&lt;/h2&gt;

&lt;p&gt;Here's the setup I landed on. At the center of it is a single file called &lt;code&gt;AGENTS.md&lt;/code&gt;, committed to the repo root, that holds the project's architecture, stack, conventions, and hard constraints — the open standard that Copilot and most other AI coding tools read directly:&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="gh"&gt;# AGENTS.md&lt;/span&gt;

&lt;span class="gu"&gt;## Project&lt;/span&gt;
Next.js 16 app, TypeScript, Tailwind, deployed on Vercel.

&lt;span class="gu"&gt;## Commands&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Dev: pnpm dev
&lt;span class="p"&gt;-&lt;/span&gt; Test: pnpm test
&lt;span class="p"&gt;-&lt;/span&gt; Lint: pnpm lint &amp;amp;&amp;amp; pnpm tsc --noEmit

&lt;span class="gu"&gt;## Conventions&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Named exports only, no default exports in components
&lt;span class="p"&gt;-&lt;/span&gt; Server components are the default

&lt;span class="gu"&gt;## Hard constraints&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Never commit .env or .env.local
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One nuance worth being precise about: Claude Code doesn't read &lt;code&gt;AGENTS.md&lt;/code&gt; directly — it only reads &lt;code&gt;CLAUDE.md&lt;/code&gt;. The way &lt;code&gt;AGENTS.md&lt;/code&gt; reaches Claude Code is a one-line import inside &lt;code&gt;CLAUDE.md&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;See @AGENTS.md for all project rules, commands, and conventions.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add that line once, and Claude Code loads &lt;code&gt;AGENTS.md&lt;/code&gt; automatically at the start of every session from then on — you still never restate the rules, you just need that single bridge line in place first. That eliminates the biggest hidden productivity tax in AI-assisted work: repeating context.&lt;/p&gt;

&lt;p&gt;The split that's worked for me: Claude Code handles the long-form, multi-step agentic work — refactors that span several files, writing a test suite, debugging something that needs a lot of context held at once. GitHub Copilot handles keystroke-level completions — ghost text, inline suggestions, boilerplate — which are still unlimited and still genuinely excellent at that specific job. The result is that my Copilot credit usage barely moves, because I've stopped routing heavy agentic work through it, and the agentic work goes to a tool that was already better suited to it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The mistake most developers make
&lt;/h2&gt;

&lt;p&gt;The instinct after a pricing change like this is to pick a side — stay on Copilot and absorb the credits, or drop it entirely for Claude Code. Both are probably the wrong move. The 2.3-tools-average stat isn't an accident; it reflects how developers who are actually productive with AI tools work in practice — one tool for fast inline work, one for deep reasoning, increasingly tied together by a shared protocol like MCP.&lt;/p&gt;

&lt;p&gt;If anything, the billing change is a useful forcing function. It pushes you to get intentional about where your AI usage actually goes, instead of defaulting into whatever setup you happened to start with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub Copilot moved to AI Credits on June 1: Pro ($10/mo) includes 1,500 credits, Pro+ ($39/mo) includes 7,000 — 1 credit = $0.01. GPT-4.1 was deprecated across all Copilot surfaces the same day.&lt;/li&gt;
&lt;li&gt;Code completions (ghost text, Next Edit Suggestions) are still unlimited on every plan. Chat, agent mode, and code review are metered.&lt;/li&gt;
&lt;li&gt;The real frustration is unpredictability, not price — a fair complaint, especially for anyone leaning on agent mode for heavy multi-step work.&lt;/li&gt;
&lt;li&gt;Claude Code now leads the category on loyalty (91% CSAT, NPS 54) and has closed the adoption gap with Cursor; Copilot's growth has stalled at 29%.&lt;/li&gt;
&lt;li&gt;Developers use an average of 2.3 AI tools — the goal isn't picking a winner, it's building a deliberate hybrid setup.&lt;/li&gt;
&lt;li&gt;A single &lt;code&gt;AGENTS.md&lt;/code&gt; file at the repo root keeps Claude Code and Copilot briefed on the same project context without duplicating it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Part 2 covers two completely free, open-source AI coding agents that drop into VS Code right where Copilot Chat sits — running a real task for $0.00. Linked from the YouTube video once it's live.&lt;/p&gt;

&lt;h1&gt;
  
  
  ai #github #productivity #programming #copilot #copilotcredits
&lt;/h1&gt;

&lt;p&gt;📺 Full video: &lt;a href="https://youtu.be/exrpvYHq7Ss" rel="noopener noreferrer"&gt;Watch on YouTube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>github</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>93,000 People Downloaded My Side Project — 3 Lessons About Shipping Software That Lasts</title>
      <dc:creator>Clemente Nogueira</dc:creator>
      <pubDate>Thu, 04 Jun 2026 17:17:25 +0000</pubDate>
      <link>https://dev.to/hermeszum/93000-people-downloaded-my-side-project-3-lessons-about-shipping-software-that-lasts-5g2i</link>
      <guid>https://dev.to/hermeszum/93000-people-downloaded-my-side-project-3-lessons-about-shipping-software-that-lasts-5g2i</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;In December 2022 I shipped a Witcher 3 mod as a side project. No marketing budget. No launch strategy. Three years later it has &lt;strong&gt;93,614 unique downloads&lt;/strong&gt;, 479,000 total views on Nexus Mods, 11 community translations, and is still running at version 4.4.1.&lt;/p&gt;

&lt;p&gt;In this article I break down the three things that made it survive — and what every developer building side projects right now should do differently from day one.&lt;/p&gt;

&lt;p&gt;▶️ Prefer video? &lt;a href="https://youtu.be/jj2A1bj-IuY" rel="noopener noreferrer"&gt;Watch the full story on YouTube →&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The project
&lt;/h2&gt;

&lt;p&gt;If you've played The Witcher 3, you know the looting loop. You fight a monster. You walk to its body. You open the loot menu. You scroll through fifteen items. You pick what to take. You close the menu. You walk to the next monster and repeat — for forty hours.&lt;/p&gt;

&lt;p&gt;It's one of the most tedious mechanics in an otherwise extraordinary game. Several AutoLoot mods existed when I started, but none of them had survived the Next-Gen Update that CD Projekt Red shipped in 2022. I took the best existing implementation, rewrote the core for Next-Gen compatibility, and rebuilt the entire configuration system so players could change everything from inside the game menu — no config files, no command line, nothing technical.&lt;/p&gt;

&lt;p&gt;The first version went live on December 15, 2022.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Endorsements:      3,531
Unique Downloads:  93,614
Total Downloads:   176,949
Total Views:       479,192
Community Posts:   1,546
Translations:      11 languages
Current Version:   4.4.1
Last Updated:      August 2024
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here's what made it last.&lt;/p&gt;




&lt;h2&gt;
  
  
  Lesson 1 — Solve the thing people are already searching for
&lt;/h2&gt;

&lt;p&gt;The mod worked because it solved a pain that &lt;strong&gt;already existed and was already measurable&lt;/strong&gt;. Every Witcher 3 player hit the same tedious loop. The problem needed no explanation. The value needed no selling. I just had to show the thing working.&lt;/p&gt;

&lt;p&gt;Compare this to how most side projects start. We have an idea, we build something, and then we try to convince people they have a problem they weren't aware of. That's an extremely hard position to be in.&lt;/p&gt;

&lt;p&gt;The mod had the opposite dynamic. People were already typing &lt;em&gt;"witcher 3 autoloot mod"&lt;/em&gt; into a search bar. They already knew what they wanted. The project just had to be &lt;strong&gt;findable and better than what existed&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Those 479,000 total views came entirely from search — not from any promotion on my part. No social media campaign. No launch post. Just a real solution to a real pain point, discoverable at the exact moment someone needed it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The question for your side project isn't "is this a cool idea?"&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The question is: are people already frustrated enough to search for this?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If yes — you're in a much stronger position than you think.&lt;/p&gt;




&lt;h2&gt;
  
  
  Lesson 2 — Design for the community to own it
&lt;/h2&gt;

&lt;p&gt;This one took me longer to understand. And it's the direct reason the mod is still alive in 2024 when I'm no longer the one maintaining it day-to-day.&lt;/p&gt;

&lt;p&gt;Those 11 translations? People I have never spoken to, from countries I've never visited, translated the entire mod into their native language because they wanted their community to use it. I didn't ask them. I didn't hire them. The project was structured in a way that made contributing &lt;strong&gt;easy and meaningful&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Three things made that possible:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Public credit, always&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every contributor is listed by name on the mod page. This sounds small. It isn't. Public credit is the currency of open source communities. When people see their name associated with a project that tens of thousands use, they come back. They tell others. They defend the project when someone asks if it's still maintained.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. A low contribution barrier&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Translation files lived in a clearly named folder with a dead-simple structure. You didn't need to understand WitcherScript or the codebase to contribute a translation. The surface area for contribution was as small as I could make it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. An honest, visible changelog&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every update listed exactly what changed and why — not marketing language, actual technical notes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;v4.3.0 — Fixed exception when looting beehives with active bees
v4.2.1 — Added 3-second delay for Action Log notification after combat
v4.1.0 — Restored compatibility after TW3 patch 4.04
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Specific. Real. Verifiable.&lt;/p&gt;

&lt;p&gt;When your users can see that bugs get fixed and edge cases get handled, they trust the project. And when they trust it, they defend it in forums, recommend it to friends, and contribute back to it. Most of those 1,546 community posts aren't support tickets I had to answer — they're users helping other users.&lt;/p&gt;

&lt;p&gt;That's the compound effect of designing for ownership. The community becomes your support layer.&lt;/p&gt;




&lt;h2&gt;
  
  
  Lesson 3 — Version like you mean it
&lt;/h2&gt;

&lt;p&gt;The mod is on version &lt;strong&gt;4.4.1&lt;/strong&gt;. Not 1.0.1. Not a pile of undated commits. Four major evolution cycles, each minor number a documented change.&lt;/p&gt;

&lt;p&gt;Semantic versioning — &lt;code&gt;major.minor.patch&lt;/code&gt; — isn't just a convention for enterprise software. It's a &lt;strong&gt;communication contract with your users&lt;/strong&gt;. When someone lands on your project page and sees v4.4.1, they know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This project has history&lt;/li&gt;
&lt;li&gt;It's been iterated on and tested&lt;/li&gt;
&lt;li&gt;The author takes it seriously enough to track changes&lt;/li&gt;
&lt;li&gt;There's a reasonable chance it still works&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That signal builds trust before a single line of the README gets read.&lt;/p&gt;

&lt;p&gt;But there's something deeper than version numbers here. It's about the &lt;strong&gt;cadence of care&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The last update was August 2024 — nearly two years after the first release. Each update wasn't arbitrary. It responded to something real: a CD Projekt Red patch breaking compatibility, a community-reported edge case, a configuration option users kept asking for. Updates were &lt;em&gt;responses&lt;/em&gt;, not noise.&lt;/p&gt;

&lt;p&gt;Most side projects die because the author loses interest and stops responding. Users feel it immediately. Forum posts go unanswered. Compatibility breaks stack up. Downloads drop. Eventually the project gets archived.&lt;/p&gt;

&lt;p&gt;The antidote isn't endless motivation. It's a &lt;strong&gt;low, sustainable update cadence&lt;/strong&gt; that signals to users that the project is alive. Even a single real patch every few months — documented, communicated — keeps the trust intact.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I'd do differently today with AI
&lt;/h2&gt;

&lt;p&gt;The biggest time cost in maintaining this mod wasn't writing the code. It was &lt;strong&gt;re-learning the codebase&lt;/strong&gt; every time I returned to it after weeks away.&lt;/p&gt;

&lt;p&gt;Witcher 3 uses WitcherScript — a custom language with its own quirks, patterns, and edge cases. Every time I came back to fix something, I spent significant time just re-orienting myself. What does this function do? Why was this architectural decision made? What are the things I must not touch?&lt;/p&gt;

&lt;p&gt;This is exactly the problem I now solve at the root of every project with a &lt;code&gt;CLAUDE.md&lt;/code&gt; briefing file — a persistent context document that tells my AI assistant everything it needs to know about the project before we start working:&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="gh"&gt;# Project: AutoLoot All-in-One NG Update&lt;/span&gt;
&lt;span class="gu"&gt;## What this is&lt;/span&gt;
A Witcher 3 mod that automatically loots items during gameplay.
Uses WitcherScript (&lt;span class="sb"&gt;`.ws`&lt;/span&gt; files), compiled by the W3 Script Compiler.

&lt;span class="gu"&gt;## Architecture&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`/mods/AutoLoot/content/scripts/`&lt;/span&gt; — core loot logic
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`/mods/AutoLoot/content/scripts/ui/`&lt;/span&gt; — in-game config menu
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`lootConfig.ws`&lt;/span&gt; — DO NOT REFACTOR, breaks menu bindings

&lt;span class="gu"&gt;## Known gotchas&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Beehive loot triggers a unique exception — see &lt;span class="sb"&gt;`beehive_handler.ws`&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Always test after any CD Projekt patch — hooks change frequently
&lt;span class="p"&gt;-&lt;/span&gt; Translation files in &lt;span class="sb"&gt;`/translations/`&lt;/span&gt; — one folder per language code

&lt;span class="gu"&gt;## What not to touch&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Menu binding IDs — hardcoded in game engine, not in our scripts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If I had this system in 2022, every return to the codebase would have taken minutes instead of hours. The AI would have been briefed. The context persistent. The cognitive overhead of maintenance — which is the &lt;em&gt;real&lt;/em&gt; reason most side projects die — dramatically lower.&lt;/p&gt;

&lt;p&gt;I cover the full setup of this system in my &lt;a href="https://www.youtube.com/@3Gear" rel="noopener noreferrer"&gt;Obsidian + VS Code AI Second Brain video&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The three things that make software last
&lt;/h2&gt;

&lt;p&gt;To bring it back together:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Solve a pain people are already searching for&lt;/strong&gt; — let them find you, don't chase them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Design for community ownership&lt;/strong&gt; — credit publicly, lower the contribution barrier, keep the changelog honest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Version with discipline&lt;/strong&gt; — treat version numbers as a trust signal, not a formality. Sustainable cadence beats bursts of motivation.&lt;/p&gt;

&lt;p&gt;None of these are unique to game modding. They apply to open source libraries, dev utilities, browser extensions, SaaS tools — anything you ship and want people to still be using three years from now.&lt;/p&gt;

&lt;p&gt;If you're building something right now — even something small — treat it like it's going to be around in three years. Because if you do it right, it will be.&lt;/p&gt;




&lt;p&gt;📺 &lt;strong&gt;Full video:&lt;/strong&gt; &lt;a href="https://youtu.be/jj2A1bj-IuY" rel="noopener noreferrer"&gt;I Shipped a Mod 93K People Downloaded — Here's What I Learned →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎮 &lt;strong&gt;The mod:&lt;/strong&gt; &lt;a href="https://www.nexusmods.com/witcher3/mods/7198" rel="noopener noreferrer"&gt;AutoLoot All-in-One NG Update on Nexus Mods →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔔 &lt;strong&gt;3Gear channel&lt;/strong&gt; — AI dev workflows + Next.js tutorials: &lt;a href="https://www.youtube.com/@3Gear" rel="noopener noreferrer"&gt;youtube.com/@3Gear&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💬 Building a side project right now? Drop what it is in the comments — I read all of them.&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Obsidian + VS Code Copilot: Build an AI Second Brain Per Project (Full Setup Guide)</title>
      <dc:creator>Clemente Nogueira</dc:creator>
      <pubDate>Wed, 03 Jun 2026 20:02:11 +0000</pubDate>
      <link>https://dev.to/hermeszum/obsidian-vs-code-copilot-build-an-ai-second-brain-per-project-full-setup-guide-4m64</link>
      <guid>https://dev.to/hermeszum/obsidian-vs-code-copilot-build-an-ai-second-brain-per-project-full-setup-guide-4m64</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Stop losing context every time you come back to a project. This guide shows you how to set up a per-project Obsidian vault — committed alongside your code in Git — so GitHub Copilot always knows exactly what your project is, what decisions have been made, and what it should never touch.&lt;/p&gt;

&lt;p&gt;▶️ Prefer video? &lt;a href="https://youtu.be/fmYn6ODiISA" rel="noopener noreferrer"&gt;Watch the full tutorial on YouTube →&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;I built this after wasting too much time watching AI agents lose context at the worst possible moments. This is my approach — a work in progress, and every developer will adapt it to their own style, but it should give you a solid starting point.&lt;/p&gt;

&lt;p&gt;Most developers work like this: Notion open in one tab, the repo in another, and the AI has no clue what either of them contains.&lt;/p&gt;

&lt;p&gt;You come back to a project after two weeks, and the first 20 minutes are wasted re-explaining the context — to yourself, and to Copilot. You type "look at my codebase and tell me what this does" and get a generic response because the AI has no history, no decisions, no current state.&lt;/p&gt;

&lt;p&gt;One giant vault for everything makes it worse. You're searching through 500 notes to find the one that belongs to this client or this project. The context is diluted.&lt;/p&gt;

&lt;p&gt;There's a better way: &lt;strong&gt;one vault, per project, committed to the same Git repo as the code.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Architecture
&lt;/h2&gt;

&lt;p&gt;Here's the structure you're going to build:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-project/
├── src/                    ← your code
├── .obsidian-vault/        ← your project brain
│   ├── .obsidian/          ← Obsidian settings (auto-created)
│   ├── decisions/          ← Architecture Decision Records
│   ├── specs/              ← Feature specs and API contracts
│   ├── bugs/               ← Issue investigations
│   ├── daily/              ← Quick standup notes
│   ├── retro/              ← Milestone reflections
│   ├── templates/          ← ADR, spec, bug templates
│   ├── 00-inbox.md         ← Capture zone
│   ├── Dashboard.md        ← Your project home screen
│   └── CLAUDE.md           ← AI briefing file ← the most important file
├── .gitignore
└── project.code-workspace
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Everything lives in one directory. Obsidian reads the vault. VS Code reads the code. Copilot reads both. Git versions all of it together.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1 — Create the Folder Structure
&lt;/h2&gt;

&lt;p&gt;Open your terminal and run:&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;mkdir &lt;/span&gt;my-project &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd &lt;/span&gt;my-project
&lt;span class="nb"&gt;mkdir&lt;/span&gt; .obsidian-vault &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; .obsidian-vault
&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; decisions specs bugs daily retro templates
&lt;span class="nb"&gt;touch &lt;/span&gt;00-inbox.md CLAUDE.md Dashboard.md
&lt;span class="nb"&gt;cd&lt;/span&gt; ..
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The dot prefix on &lt;code&gt;.obsidian-vault&lt;/code&gt; keeps it visually separate from your source folders. It's still committed to Git — we just want it to sit apart from &lt;code&gt;/src&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2 — Write the CLAUDE.md Briefing File
&lt;/h2&gt;

&lt;p&gt;This is the most important file in the entire system.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; is a plain-text briefing document. Every time Copilot (or Claude, or any AI agent) opens this project, it reads this file first. Write it like you're briefing a new developer joining the team.&lt;/p&gt;

&lt;p&gt;Here's the structure:&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="gh"&gt;# Project Name&lt;/span&gt;

&lt;span class="gu"&gt;## What this is&lt;/span&gt;
[One or two plain sentences. No jargon.]

&lt;span class="gu"&gt;## Tech stack&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Language: TypeScript
&lt;span class="p"&gt;-&lt;/span&gt; Framework: Next.js 16
&lt;span class="p"&gt;-&lt;/span&gt; Deployment: Vercel
&lt;span class="p"&gt;-&lt;/span&gt; Database: Supabase (Postgres)

&lt;span class="gu"&gt;## Current state&lt;/span&gt;
[What's working. What's broken. What you're focused on right now.]
[Update this every time you return after a break. Takes 30 seconds. Saves 5 minutes.]

&lt;span class="gu"&gt;## Key decisions made&lt;/span&gt;
These are settled — not open for discussion:
&lt;span class="p"&gt;-&lt;/span&gt; [Decision 1: e.g. "Server components for all data fetching — no client-side useEffect fetches"]
&lt;span class="p"&gt;-&lt;/span&gt; [Decision 2: e.g. "Zod for all form validation, no exceptions"]

&lt;span class="gu"&gt;## File map&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`src/app/`&lt;/span&gt; — Next.js App Router pages
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`src/components/ui/`&lt;/span&gt; — shadcn/ui components, do not modify these manually
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`src/lib/db/`&lt;/span&gt; — all database queries live here

&lt;span class="gu"&gt;## DO NOT&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Do not suggest React Query — we use server components and Next.js cache
&lt;span class="p"&gt;-&lt;/span&gt; Do not modify &lt;span class="sb"&gt;`src/components/ui/`&lt;/span&gt; without reading &lt;span class="sb"&gt;`decisions/001-design-system.md`&lt;/span&gt; first
&lt;span class="p"&gt;-&lt;/span&gt; Do not add new environment variables without updating &lt;span class="sb"&gt;`.env.example`&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;strong&gt;DO NOT&lt;/strong&gt; section is what separates a good briefing from a great one. It prevents Copilot from helpfully "fixing" something you deliberately designed a certain way for a reason that isn't obvious from the code alone.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3 — Open the Vault in Obsidian
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Launch Obsidian&lt;/li&gt;
&lt;li&gt;Click the vault icon in the bottom-left corner&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;"Open folder as vault"&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select your &lt;code&gt;.obsidian-vault&lt;/code&gt; folder (not the project root — the vault folder specifically)&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Open&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Obsidian initialises the vault and creates &lt;code&gt;.obsidian/&lt;/code&gt; inside it for settings and plugins.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4 — Install the Four Essential Plugins
&lt;/h2&gt;

&lt;p&gt;Go to &lt;strong&gt;Settings → Community Plugins → Browse&lt;/strong&gt;, then install and enable:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plugin&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Templater&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Dynamic templates with date variables — you'll use this for ADRs, specs, and bugs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Dataview&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Database-style queries across notes — powers your project dashboard&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Obsidian Git&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Auto-commits notes with your code on a timer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Linter&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Keeps frontmatter consistent across all notes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Step 5 — Wire Up Git
&lt;/h2&gt;

&lt;p&gt;At your &lt;strong&gt;project root&lt;/strong&gt; (not the vault folder):&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Create your &lt;code&gt;.gitignore&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight conf"&gt;&lt;code&gt;&lt;span class="c"&gt;# Obsidian workspace state (device-specific, don't commit)
&lt;/span&gt;.&lt;span class="n"&gt;obsidian&lt;/span&gt;-&lt;span class="n"&gt;vault&lt;/span&gt;/.&lt;span class="n"&gt;obsidian&lt;/span&gt;/&lt;span class="n"&gt;workspace&lt;/span&gt;.&lt;span class="n"&gt;json&lt;/span&gt;
.&lt;span class="n"&gt;obsidian&lt;/span&gt;-&lt;span class="n"&gt;vault&lt;/span&gt;/.&lt;span class="n"&gt;obsidian&lt;/span&gt;/&lt;span class="n"&gt;workspace&lt;/span&gt;-&lt;span class="n"&gt;mobile&lt;/span&gt;.&lt;span class="n"&gt;json&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Everything else in the vault — plugin settings, themes, all your notes — gets committed. This is intentional.&lt;/p&gt;

&lt;p&gt;Initial commit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"init: project with obsidian vault"&lt;/span&gt;
git remote add origin git@github.com:your-username/your-project.git
git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now configure the Obsidian Git plugin:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Settings → Obsidian Git&lt;/li&gt;
&lt;li&gt;Auto commit-and-sync interval: &lt;strong&gt;10 minutes&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Enable: &lt;strong&gt;auto commit after stopping file edits&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Merge strategy: &lt;strong&gt;Merge&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your notes now commit with your code. Every &lt;code&gt;git log&lt;/code&gt; shows both. When you look at a commit from six months ago, you'll also see the decision record that motivated it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 6 — Set Up Templates
&lt;/h2&gt;

&lt;p&gt;In Obsidian, go to &lt;strong&gt;Settings → Templater&lt;/strong&gt; and set the templates folder to &lt;code&gt;templates&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Architecture Decision Record (&lt;code&gt;templates/_template-adr.md&lt;/code&gt;)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;% tp.file.title %&amp;gt;&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;% tp.date.now("YYYY-MM-DD") %&amp;gt;&lt;/span&gt;
&lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Proposed&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="gu"&gt;## Context&lt;/span&gt;
[Why was this decision needed?]

&lt;span class="gu"&gt;## Decision&lt;/span&gt;
[What was chosen?]

&lt;span class="gu"&gt;## Consequences&lt;/span&gt;
[What changes as a result?]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Feature Spec (&lt;code&gt;templates/_template-spec.md&lt;/code&gt;)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;% tp.file.title %&amp;gt;&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;% tp.date.now("YYYY-MM-DD") %&amp;gt;&lt;/span&gt;
&lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Draft&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="gu"&gt;## Goal&lt;/span&gt;
[What are we trying to achieve?]

&lt;span class="gu"&gt;## Acceptance Criteria&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; [ ] Criterion 1
&lt;span class="p"&gt;-&lt;/span&gt; [ ] Criterion 2

&lt;span class="gu"&gt;## Out of Scope&lt;/span&gt;
[What this spec deliberately does not cover]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Bug Investigation (&lt;code&gt;templates/_template-bug.md&lt;/code&gt;)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;% tp.file.title %&amp;gt;&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;% tp.date.now("YYYY-MM-DD") %&amp;gt;&lt;/span&gt;
&lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Open&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="gu"&gt;## Steps to Reproduce&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; 

&lt;span class="gu"&gt;## Expected Behaviour&lt;/span&gt;

&lt;span class="gu"&gt;## Actual Behaviour&lt;/span&gt;

&lt;span class="gu"&gt;## Root Cause&lt;/span&gt;
[Fill this in when found]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 7 — Connect VS Code and Copilot Agent Mode
&lt;/h2&gt;

&lt;p&gt;Create a workspace file at the project root (&lt;code&gt;project.code-workspace&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;"folders"&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="nl"&gt;"path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&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="nl"&gt;"settings"&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;"files.exclude"&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;"**/.obsidian"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&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;Open this file with &lt;strong&gt;File → Open Workspace from File&lt;/strong&gt; instead of opening the folder directly. This gives you a clean explorer view and ensures Copilot sees the entire workspace including the vault.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enable Copilot Agent Mode:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Copilot chat: &lt;code&gt;Ctrl+Shift+I&lt;/code&gt; (or &lt;code&gt;Cmd+Shift+I&lt;/code&gt; on Mac)&lt;/li&gt;
&lt;li&gt;Click the mode selector at the top of the chat panel&lt;/li&gt;
&lt;li&gt;Switch from &lt;strong&gt;Ask&lt;/strong&gt; to &lt;strong&gt;Agent&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now test it. Type into Copilot:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Read .obsidian-vault/CLAUDE.md and give me a summary of the current project state.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copilot reads your briefing file and responds with a summary. From this point on, every agent session starts with that context — no copy-paste, no re-explaining.&lt;/p&gt;

&lt;p&gt;You can also tell Copilot to write back into the vault:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Summarise the change we just made and write an ADR to 
.obsidian-vault/decisions/001-auth-strategy.md using the template 
at .obsidian-vault/templates/_template-adr.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copilot reads the template, generates the ADR, writes the file. Next commit: decision record and code go together.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 8 — Build Your Project Dashboard
&lt;/h2&gt;

&lt;p&gt;Create &lt;code&gt;Dashboard.md&lt;/code&gt; at the vault root with Dataview queries:&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="gh"&gt;# Project Dashboard&lt;/span&gt;

&lt;span class="gu"&gt;## 🐛 Open Bugs&lt;/span&gt;
&lt;span class="p"&gt;```&lt;/span&gt;&lt;span class="nl"&gt;dataview
&lt;/span&gt;&lt;span class="sb"&gt;TABLE status, file.mtime as "Last updated"
FROM "bugs"
WHERE status = "Open"
SORT file.mtime DESC&lt;/span&gt;
&lt;span class="p"&gt;```&lt;/span&gt;

&lt;span class="gu"&gt;## 📋 Open Specs&lt;/span&gt;
&lt;span class="p"&gt;```&lt;/span&gt;&lt;span class="nl"&gt;dataview
&lt;/span&gt;&lt;span class="sb"&gt;TABLE status
FROM "specs"
WHERE status != "Done"&lt;/span&gt;
&lt;span class="p"&gt;```&lt;/span&gt;

&lt;span class="gu"&gt;## 🗺️ Recent Decisions&lt;/span&gt;
&lt;span class="p"&gt;```&lt;/span&gt;&lt;span class="nl"&gt;dataview
&lt;/span&gt;&lt;span class="sb"&gt;TABLE file.mday as "Date"
FROM "decisions"
SORT file.mday DESC
LIMIT 5&lt;/span&gt;
&lt;span class="p"&gt;```&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Set Dashboard.md as your &lt;strong&gt;default file&lt;/strong&gt; in Obsidian settings. Every time you open the vault, in 30 seconds you know exactly where you left off.&lt;/p&gt;




&lt;h2&gt;
  
  
  What a Real Session Looks Like
&lt;/h2&gt;

&lt;p&gt;You haven't touched this project in two weeks.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Obsidian → switch to the project vault → open &lt;code&gt;Dashboard.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Two open bugs. One spec in progress. Good.&lt;/li&gt;
&lt;li&gt;Check &lt;code&gt;00-inbox.md&lt;/code&gt; — you left a note: &lt;em&gt;"look into partial fill edge case in risk manager"&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Open VS Code → Copilot agent mode on&lt;/li&gt;
&lt;li&gt;Type: &lt;code&gt;"Read CLAUDE.md and bugs/partial-fill-issue.md and help me investigate the root cause"&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Copilot reads both files, understands the context, starts reasoning with you&lt;/li&gt;
&lt;li&gt;As you work, you drop quick notes into &lt;code&gt;00-inbox.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Root cause found → update the bug note, mark status: Fixed&lt;/li&gt;
&lt;li&gt;Before closing: update the &lt;strong&gt;Current State&lt;/strong&gt; section of &lt;code&gt;CLAUDE.md&lt;/code&gt;. Two sentences. What you fixed. What's next.&lt;/li&gt;
&lt;li&gt;Commit. Notes and code together.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Tomorrow, in two weeks, in six months — you're back in context within 60 seconds.&lt;/p&gt;




&lt;h2&gt;
  
  
  Switching Between Projects
&lt;/h2&gt;

&lt;p&gt;This is where the per-project vault model really shines.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Obsidian&lt;/strong&gt;: click the vault icon → select a different project vault. Each vault has its own plugins, its own dashboard, its own graph view. Zero bleed-through between projects.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;VS Code&lt;/strong&gt;: close the current workspace, open the other project folder. Copilot's context resets automatically.&lt;/p&gt;

&lt;p&gt;You're never reading notes from one project while working on another. Each project is an island — isolated, focused, self-contained.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One vault per project&lt;/strong&gt; — not one vault for your life&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CLAUDE.md is the most important file&lt;/strong&gt; — it's your AI briefing document, update it every session&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The DO NOT section&lt;/strong&gt; prevents AI from "helpfully" breaking things you designed on purpose&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Same Git repo&lt;/strong&gt; — code and notes are versioned together, always in sync&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copilot in agent mode&lt;/strong&gt; can read and write your vault — it's not just reading your code anymore&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dashboard.md + Dataview&lt;/strong&gt; — you're back in context within 60 seconds every time&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What to expect
&lt;/h2&gt;

&lt;p&gt;The second part will cover GitHub Copilot instructions, agents, skills, prompts, and MCP files — so don't worry if this feels incomplete for now.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;p&gt;Once this is running, the natural progression is &lt;strong&gt;Claude Code&lt;/strong&gt; — a terminal-based agent that reads the same &lt;code&gt;CLAUDE.md&lt;/code&gt; file and can run commands across the project. It's built for exactly this kind of project-scoped context.&lt;/p&gt;




&lt;p&gt;📺 &lt;strong&gt;Full video walkthrough (16 min):&lt;/strong&gt; &lt;a href="https://youtu.be/fmYn6ODiISA" rel="noopener noreferrer"&gt;Obsidian + VS Code Copilot: AI Second Brain Per Project Setup →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🗂️ &lt;strong&gt;Template files&lt;/strong&gt; (CLAUDE.md starter + ADR/Spec/Bug templates): drop a comment below or on the video and I'll link them&lt;/p&gt;

&lt;p&gt;💬 &lt;strong&gt;Questions?&lt;/strong&gt; Leave them in the comments below or on the YouTube video — what part of your dev workflow are you trying to fix? Best questions become future videos.&lt;/p&gt;

</description>
      <category>obsidian</category>
      <category>vscode</category>
      <category>githubcopilot</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
