<?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.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>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>
