Back to reference

Agent-First Guide

1. Introduction

This guide is for developers who want to use aDNA with Claude Code (or another AI coding agent) from the terminal, without installing Obsidian. If you already use Obsidian, you don’t need this — the Quick Start covers everything.

What you’ll have at the end: A working aDNA vault that Claude Code can navigate, with session tracking, templates, and the full execution hierarchy — all from your terminal and text editor.

Time estimate: 10-15 minutes.

Prerequisites:

  • Git
  • A text editor (VS Code, Vim, Emacs, whatever you use)
  • The claude CLI (Claude Code)

2. What Works Without Obsidian

aDNA is a directory convention — Markdown files with YAML frontmatter organized in a who//what//how/ triad. Obsidian adds a visual layer on top, but the operational core is plain files on disk.

Feature parity at a glance

BucketCount%What’s in it
Works everywhere2255%Governance, sessions, templates, context library, execution hierarchy, git workflow, FAIR metadata, lattice YAML, naming conventions, skills, campaigns, missions, onboarding
Degraded615%Wikilinks (no click-nav), graph view (unavailable), Dataview queries (won’t render), search (editor-dependent), Meta Bind inputs (won’t render), Tasks queries (won’t render)
Requires Obsidian1230%Templater auto-trigger, Canvas, Obsidian Git, Notebook Navigator, Homepage, Icon Folder, Style Settings + CSS, BRAT, Termy, Pretty Properties, Fold Properties, Banners

The important number: The operational core — governance (CLAUDE.md, AGENTS.md), session tracking, templates-as-files, context library, execution hierarchy, git workflow — is 100% functional without Obsidian. The 30% you lose is visual polish and automation shortcuts. The value split is closer to 80/20.

Detailed breakdown

Works everywhere — these features are plain Markdown and YAML:

FeatureHow it works without Obsidian
CLAUDE.md governanceAuto-loaded by Claude Code on startup. No change.
AGENTS.md per-directory guidesRead by agents before working in a directory. No change.
MANIFEST.md + STATE.mdPlain Markdown. No change.
Triad structure (who//what//how/)Directory convention. Works in any filesystem.
YAML frontmatterStandard YAML. Parsed by agents, readable in any editor.
14 base entity typesNaming conventions + frontmatter schemas. No Obsidian dependency.
Session trackingCreate files in how/sessions/active/, move to history/ on close.
Execution hierarchyCampaign → Mission → Objective. Plain Markdown with status tracking.
Context librarywhat/context/ files loaded by agents on demand.
Context recipesCross-topic assembly instructions. Agent-parsed.
SkillsReusable agent recipes in how/skills/. Agent-executed.
TemplatesFiles in how/templates/. Copy manually instead of auto-trigger.
Git workflowStandard git. commit, push, pull from terminal.
Lattice YAML.lattice.yaml definitions. Schema-validated.
FAIR metadatafair: blocks in lattice YAML. No rendering dependency.
Naming conventionsUnderscores, type_descriptive_name.md. Convention, not tooling.
Wikilinks as identifiers[[filename]] syntax serves as machine-parseable cross-references even without Obsidian’s click-navigation. Agents use them for relationship discovery.
First-run detection + onboardingClaude Code reads CLAUDE.md, detects uncustomized vault, runs skill_onboarding.md interactively. Fully terminal-compatible.
Bridge patternsMulti-vault composition. Directory conventions, no Obsidian dependency.
OODA cascadeObserve-Orient-Decide-Act at each execution level. Methodology, not tooling.
Convergence modelProgressive context narrowing. Agent behavior, not Obsidian feature.
Escalation / priority rulesGovernance protocols. Agent-enforced.

Degraded — present in files but won’t render interactively:

FeatureWhat happensWorkaround
Wikilinks[[filename]] appears as literal text. No click-navigation, no auto-rename on file move.Use grep or rg to find references. Agents parse wikilinks natively.
Graph viewNot available. No visual map of entity relationships.Use grep '[[' *.md to trace links. Or rg '\[\[' --type md for recursive search.
Dataview queries```dataview ``` blocks appear as code fences. No rendered tables.Claude Code can query frontmatter directly — ask it to find files by type, status, etc.
SearchNo unified Obsidian search.rg (ripgrep) or your editor’s search. Claude Code’s Grep tool works across the vault.
Meta Bind inputs```meta-bind ``` blocks appear as code fences. No interactive controls.Edit frontmatter directly in your editor.
Tasks queries```tasks ``` blocks appear as code fences. No rendered task lists.Track tasks in frontmatter (status field) or use Claude Code’s task system.

Requires Obsidian — completely absent without it:

FeatureWhat you loseImpact
Templater auto-triggerNo automatic template application when creating files in mapped directories.Low — copy from how/templates/ manually or let Claude Code do it.
Canvas / Advanced CanvasNo visual node graphs, no canvas presentations.Medium — use Mermaid diagrams in Markdown or skip visual workflows.
Obsidian GitNo auto-commit timer, no auto-pull on open.None — use standard git commands.
Notebook NavigatorNo folder-based navigation with triad colors and icons.Low — use ls, tree, or your editor’s file explorer.
HomepageNo configured start page on vault open.None — STATE.md serves the same purpose for agents.
Icon FolderNo custom folder/file icons.None — cosmetic only.
Style Settings + CSSNo theme customization GUI, no visual styling.None — cosmetic only.
BRATNo beta plugin management.None — only relevant for Obsidian plugins.
TermyNo terminal presets inside Obsidian.None — you’re already in a terminal.
Pretty PropertiesNo polished frontmatter display.None — read YAML directly.
Fold PropertiesNo auto-folding of frontmatter blocks.None — editor setting.
BannersNo header images on notes.None — cosmetic only.

3. Setup Walkthrough

Step 1: Clone the repo

git clone https://github.com/LatticeProtocol/Agentic-DNA.git adna
cd adna

Skip ./setup.sh — that script downloads Obsidian plugins and themes. The .obsidian/ directory will exist in the repo but is inert without Obsidian installed. You can ignore it.

Step 2: Launch Claude Code

claude

Claude Code auto-loads CLAUDE.md from the project root. Berthier — the built-in agent personality — orients on the vault structure and is ready to work.

If onboarding triggers: On a truly fresh vault (empty session history, uncustomized MANIFEST.md), Berthier automatically runs the interactive onboarding skill — explaining the architecture, asking about your project, and customizing governance files. The entire flow runs in the terminal.

On the reference repo (the default): The aDNA repo ships with reference content already in place (sample sessions, populated manifests, documentation). Onboarding won’t auto-trigger. Instead, tell Claude Code what you want to do:

  • “Customize this vault for my project” — Berthier will walk you through editing MANIFEST.md, STATE.md, and the identity section of CLAUDE.md
  • “Run the onboarding skill” — explicitly invokes how/skills/skill_onboarding.md for the full guided experience

Step 3: Verify the setup

After customization, confirm three things:

  1. MANIFEST.md — should have your project name and description
  2. STATE.md — should reflect your current phase and next steps
  3. how/sessions/active/ — should contain a session file
head -20 MANIFEST.md
head -20 STATE.md
ls how/sessions/active/

If all three check out, your vault is operational.

Alternative: Manual setup (no agent)

If you prefer to skip the agent entirely:

  1. Edit MANIFEST.md — replace the project description with your own
  2. Edit STATE.md — set your current phase and next steps
  3. Optionally edit CLAUDE.md — customize the ## Identity & Personality section

Use the starter templates in the Migration Guide § 6 for copy-paste-ready governance files.


4. Session Workflow

Creating sessions

In Obsidian, Templater auto-applies template_session.md when you create a file in how/sessions/active/. Without Obsidian, you have two options:

Option A: Let Claude Code handle it (recommended)

Claude Code’s agent protocol creates a session file automatically on startup. Just launch claude and start working — the session file will be created for you.

Option B: Copy the template manually

cp how/templates/template_session.md \
   how/sessions/active/session_$(whoami)_$(date +%Y%m%d)_descriptor.md

Then open the file and replace the Templater placeholders with actual values:

PlaceholderReplace with
YYYY-MM-DDToday’s date (e.g., 2026-03-19)
{username}Your username
{ISO_TIMESTAMP}Current timestamp (e.g., 2026-03-19T10:00:00-05:00)
<% tp.date.now() %>Today’s date — this is Templater syntax that won’t auto-resolve
<% tp.file.title %>The filename you just created

Templater syntax note: Templates contain <% tp.date.now("YYYY-MM-DD") %> and similar expressions. These are Templater plugin functions that auto-resolve in Obsidian. In a terminal, they appear as literal text. Replace them with the actual values.

Closing sessions

When you’re done working:

  1. Update your session file’s SITREP section (completed, in progress, next up, blockers)
  2. Write the Next Session Prompt — a self-contained paragraph so the next agent can continue
  3. Set status: completed in frontmatter
  4. Move the file to the history directory:
# Create the month directory if it doesn't exist
mkdir -p how/sessions/history/$(date +%Y-%m)

# Move the session file
mv how/sessions/active/session_*.md \
   how/sessions/history/$(date +%Y-%m)/

Git workflow

Without Obsidian Git’s auto-commit, use standard git:

# Start of session
git pull

# After making changes
git add -A
git commit -m "session: brief description of what changed"
git push

If you’re the only user, commit frequency is up to you. If multiple people sync the vault, commit and push at the end of each session to avoid conflicts.


5. Claude Code Configuration

CLAUDE.md placement

CLAUDE.md must be at the project root — Claude Code auto-loads it from the working directory. This is the single most important file for agent orientation. If it’s missing or misplaced, agents start blind.

Memory vs. sessions

Claude Code has two persistence mechanisms. They serve different purposes:

MechanismLocationScopeUse for
Claude Code memory~/.claude/projects/Personal, per-machineYour preferences, feedback, credentials, tool notes
Vault sessionshow/sessions/Shared, in gitWork continuity across agents and collaborators

Memory is private — it stays on your machine and isn’t committed to git. Sessions are shared — they go into the vault repo so any collaborator (human or agent) can pick up where you left off.

The .claude/ directory

Claude Code creates a .claude/ directory in your project for local settings:

.claude/
├── settings.json     # Project-specific permissions and hooks
└── ...               # Other machine-local state

This directory is gitignored — it’s machine-local configuration that shouldn’t be shared. Each collaborator has their own .claude/ directory.

.mcp.json

If you use MCP (Model Context Protocol) servers with Claude Code, the .mcp.json config file is also gitignored. Claude Code has native filesystem access, so you don’t need a filesystem MCP server. Add MCP servers only for external integrations (databases, APIs, specialized tools).

Useful patterns

PatternWhen to use
Plan modeBefore starting a multi-step mission. Claude Code explores the codebase, designs an approach, and gets your approval before writing code.
Explore agentsFor codebase research. Claude Code spawns a sub-agent to search files, trace references, and report back without consuming your main conversation context.
HooksFor automation. Configure in .claude/settings.json to run scripts on events (e.g., auto-format on file save, run tests after edits).
/clear then re-orientWhen context gets stale mid-session. Clear the conversation, Claude Code reloads CLAUDE.md, and you get a fresh start with the vault’s current state.

6. Substitution Table

Quick reference for replacing Obsidian-specific features:

Obsidian featureTerminal substitute
Templater auto-triggerCopy from how/templates/ manually, or let Claude Code create files
Graph viewrg '\[\[' --type md to trace wikilink relationships
CanvasMermaid diagrams in Markdown, or skip visual workflows
Obsidian GitStandard git pull / git commit / git push
Obsidian searchrg (ripgrep) or your editor’s search
Dataview queriesAsk Claude Code to query frontmatter (e.g., “find all files with status: active”)
Meta Bind inputsEdit frontmatter YAML directly
Tasks pluginTrack status in frontmatter fields or use Claude Code’s task tracking
Notebook Navigatorls, tree, or editor file explorer
HomepageRead STATE.md for operational context on startup

7. Growing Into Obsidian

If you later decide to add Obsidian, install it, open the vault directory, enable community plugins when prompted, and run ./setup.sh. Everything lights up — graph view, wikilink navigation, canvas visualizations, auto-templates, the Tokyo Night theme. It’s a one-way door that adds capability without changing anything you’ve already built. Your governance files, sessions, context library, and git history all carry over unchanged.


Agent-first guide v1.0 | Companion to the Migration Guide, aDNA Standard, and Architecture Overview