Generated banner for Project Name
Generated logo for Project Name

Project Name

Vault template

First committed by asakin

Published in asakin/llm-context-base. Publisher page

74 GitHub stars

What it is

A git template for building your own LLM-powered personal wiki. Training period, metadata standard, lint system included. Clone and go.
— the description by asakin

AutoGineer overview, from the brain’s own files

llm-context-base is an opinionated template designed to turn a local git repository into an LLM-powered personal wiki. It implements a three-layer pattern consisting of raw source documents, an LLM-maintained wiki, and a schema configuration. The system is designed to adapt to a user's workflow over time, eliminating the need for upfront taxonomy design. It includes a metadata standard for queryable files, an inbox-first capture system with a 7-day TTL, and a linting system to maintain document health. It supports various AI tools including Claude Code, Cursor, and GitHub Copilot, providing a consistent interface for managing personal knowledge.

How it works

Memory model: LLM wiki

AutoGineer overview, from the brain’s own files

The system uses a specific folder structure including 1-Projects, 2-Knowledge, 3-Journal, and 4-Private, alongside configuration and metadata folders. Users capture information into an _inbox folder, which the AI then processes and files according to a metadata standard. The system is bootstrapped via configuration files in .claude, .cursor, and .github, which direct the AI to follow instructions located in _config and _meta. It uses a training period to learn user patterns and maintains documentation through a split README file that separates user-specific content from framework documentation.

Folders
FolderRoleFiles
.claudeagent-config2
.cursoragent-config1
.githubagent-config1
.obsidianobsidian-config7
assetsattachments2
docsdocs13
examplesexamples4
1-Projectsfolder3
2-Knowledgefolder5
3-Journalfolder1
4-Privatefolder1
_configfolder4
_inboxfolder1
_metafolder14
_outputfolder1
_sourcesfolder2

The agent reads

The agent writes

Requirements

Apps: Obsidian

Databases: MongoDB, PostgreSQL

Works with: Claude Code, GitHub Copilot, Cursor, Devin (ex-Windsurf)

Set it up

  1. Download the brain as a ZIP and unzip it where you keep your notes or project: https://mp-staging.autogineer.com/agent-brains/asakin/llm-context-base/download
  2. In Obsidian, choose “Open folder as vault” and pick the folder.

  3. Claude Code reads .claude/CLAUDE.md from this folder automatically.

  4. cd llm-context-base && claude

  5. AutoGineer scanned these files at commit 3c096ca.

  6. First committed by asakin. Published in asakin/llm-context-base. Licence: Apache License 2.0.

Usage

AutoGineer overview, from the brain’s own files

  • Capture unstructured notes into the inbox for later organization by the AI.
  • Maintain decision records with context, options, and rationale.
  • Query the wiki to synthesize information across multiple documents.
  • Run linting commands to identify stale files or missing metadata.
  • Manage project initiatives with briefs and timeline tracking.
  • Generate reports or summaries from stored knowledge.
“Capture this: here's how our onboarding process works...”
Creates a file in the inbox and offers to file it in the appropriate location.
“We decided to use PostgreSQL over MongoDB, let me document why”
Generates a decision record with context, options, rationale, and an outcome section.
“What do we know about our hiring process?”
Scans file summaries and synthesizes an answer with source citations.
“Lint the wiki”
Surfaces stale files, missing metadata, and orphaned documents.

Documentation by asakin

[Project Name]

This README will be personalized during your first session.


<!-- llm-context-base:framework-readme -->

llm-context-base

An opinionated template for building your own LLM Wiki.

Use the template, point your AI assistant at it, and start talking. Over time, it learns how you work and adapts its structure to your needs without you having to design anything upfront.


How This Relates to Karpathy's LLM Wiki

Andrej Karpathy's LLM Wiki gist describes a three-layer pattern: raw source documents → an LLM-maintained wiki → a schema config file (like CLAUDE.md or AGENTS.md). The LLM reads sources, maintains structured wiki pages, and follows the schema config to stay consistent.

llm-context-base implements this pattern as a ready-to-use template — so you don't have to build it from scratch. What it adds on top of the base pattern:

  • Metadata standard — every file gets a queryable header (type, summary, tags, status, date). The LLM scans these instead of loading full files, which scales cleanly to hundreds of documents.

  • Inbox-first capture — a frictionless landing zone with a 7-day TTL. You capture without deciding where things go. The LLM files them later.

  • Training period — the system starts chatty (learning your patterns) and goes quiet as it adapts. You never design a taxonomy upfront.

  • Lint system — surfaces stale files, missing metadata, and orphaned docs on demand.

  • Multi-LLM support — bootstrap shims for Claude Code, Cursor, Copilot, Windsurf, and others. One config, any tool.

Full comparison with the Karpathy pattern &rarr;


Quick Start

1. Create your copy. Click "Use this template" on GitHub. Make it private. Clone it.

git clone https://github.com/YOUR-USERNAME/my-wiki.git
cd my-wiki

2. Set up your workspace. Open the repo as an Obsidian vault on one side, your AI agent on the other. You talk to the AI — it builds the wiki. You watch it happen in Obsidian.

Full Obsidian setup &rarr; · No Obsidian? Any editor + any supported AI tool works fine.

3. Fill in your profile. Open _config/config.md, fill in the About You section, and set Training Start Date to today.

4. Start talking. Open in your AI tool of choice and go:

  • "Capture this: here's how our onboarding process works..."

  • "We decided to use PostgreSQL over MongoDB, let me document why"

  • "What do we know about our deployment process?"

  • "Lint the wiki, what needs attention?"

That's it. The system adapts to what you actually need.

Want to stay updated as the framework improves? The template approach gives you a clean start but disconnects you from upstream. If you want to pull future improvements (new protocols, better training behavior, bug fixes), use the Framework Track setup instead.


What Makes This Different

It learns how you work. The first 30 days are a training period. Your AI asks questions, suggests directories, and logs what it learns. By day 45, it's quiet and efficient. You never design a taxonomy upfront. Full details &rarr;

Capture first, organize later. Everything lands in _inbox/ with a 7-day TTL. You never hesitate to capture because you don't have to decide where it goes yet. Your AI files it later.

Your README stays yours. This file has two sections split by a marker. Above it: your personal project README, maintained by your AI as the wiki evolves. Below it: the framework docs, which track upstream cleanly. You get living documentation without merge conflicts.

Patterns are captured as they emerge. When your AI learns a new convention or preference during a conversation, it writes it down immediately, not at commit time. Nothing is lost if you commit from the command line without AI involvement.

Every file is queryable. A metadata standard on every document means your AI can scan summaries and tags without loading full files. This scales to hundreds of documents.

It maintains itself. Lint checks surface stale files, missing metadata, and orphaned docs. The system even reviews its own instruction efficiency to prevent context window bloat as your wiki grows.


What You Can Do

Say thisWhat happens
"Capture this: here's how we set up monitoring..."Creates a file in _inbox/, offers to file it
"We decided to use Terraform over Pulumi, document why"Decision record with context, options, rationale, and an outcome section to fill in later
"What do we know about our hiring process?"Scans summaries, synthesizes an answer with source citations
"Lint the wiki"Surfaces stale files, missing metadata, orphaned docs
"Start a new initiative: migrate to Kubernetes"Project workspace with brief, timeline, artifact tracking
"Create a slide deck summarizing Q1 decisions"Generates output in _output/, dated and organized

These form a cycle. Capture feeds queries, queries inform decisions, decisions get tracked, lint keeps it all healthy. The system compounds over time.


Go Deeper

TopicWhat's there
Training PhasesHow the system adapts to you over 30 days
Directory StructureWhat each folder is for, why there are only 4
Journal Sync & PrivacySyncing 3-Journal/ across devices — plaintext, git-crypt, or external
Metadata StandardThe format that makes everything queryable
Supported ToolsClaude Code, Cursor, Copilot, Windsurf, ChatGPT, and others
Obsidian SetupPre-configured vault, plugins, web clipper
Design DecisionsWhy the system works the way it does
FAQCommon questions
Linked Code ReposConnect wiki project entries to real code repos — workspace files, context files, Obsidian plugin dev
Extending & ContributingCustomize locally vs. contribute upstream
Future DirectionsWhere this is headed
PhilosophyThe deeper thinking behind the system

The examples/ directory has four sample files showing the metadata standard in action. Read them, then delete them when you're comfortable.


Credits

Built on Andrej Karpathy's LLM Wiki Pattern. Implementation by Ariel Sakin, refined over several months of daily use managing business operations.

License

Apache 2.0. See LICENSE.

_config/standard.md


type: knowledge summary: The canonical metadata standard for all files in this system — makes every document queryable by LLMs and writable by agents. tags: [meta, standard] status: active updated: 2026-04-09

Document Standard

Standard Tiers

The standard has two tiers. This prevents the standard from becoming a blocker on legitimate use cases while keeping the core queryable.

Tier 1 — Universal (always enforced) Required on every content file. Non-negotiable. Lint will flag missing Tier 1 fields.

  • type — what kind of document this is

  • summary — one sentence a future query can use

  • tags — domain and type vocabulary

  • status — lifecycle state

  • updated — date of last meaningful change

Tier 2 — Advisory (context-dependent) Use when relevant. Not required. Lint will not flag missing Tier 2 fields.

  • owner — relevant for team wikis, shared knowledge

  • confidence — relevant for research, claims, uncertain knowledge

  • failure_reason — required when status: archived or superseded

  • related — helpful for navigating dense knowledge graphs


Why This Standard Exists

As your knowledge base grows, documents accumulate across directories. Without a common metadata layer, finding information requires manual navigation or loading entire files into context. This standard makes every document in the system:

  1. Queryable — LLMs can scan summaries and tags without reading full files

  2. Writable — Agents and automations know exactly how to create compliant files

  3. Cross-cuttable — "What's happening with #deployment this week?" returns results across all content types

  4. Fresh-trackable — The Updated field makes it easy to flag stale content

Based on Andrej Karpathy's LLM Wiki Pattern, extended to cover structured knowledge management.


The Metadata Block

Every wiki file gets a YAML frontmatter block at the very top, before the # Title line. Exceptions: docs/ files, _meta/ system files, and README.md files do not get frontmatter.

---
type: [see types below]
summary: One sentence describing what this file contains or its current state.
tags: [domain, type, topic]
status: [see statuses below]
owner: Person or role responsible
updated: YYYY-MM-DD
related: "[file1](path/file1.md), [file2](path/file2.md)"
---
Required vs Optional by Type
TypeRequired FieldsOptional Fields
knowledgeType, Summary, Tags, Status, UpdatedOwner, Related, Confidence
decisionType, Summary, Tags, Status, Owner, UpdatedRelated
initiativeType, Summary, Tags, Status, Owner, UpdatedRelated
meetingType, Summary, Tags, UpdatedStatus, Owner, Related
journalType, Summary, UpdatedTags, Status, Owner, Related
todoType, Summary, Tags, Status, UpdatedOwner, Related
statusType, Summary, UpdatedTags, Status, Owner, Related
templateType, Summary, TagsStatus, Owner, Updated, Related
Field Definitions

Type — What kind of document this is (see Types section below).

Summary — One sentence, present tense, describing what the file contains OR its current state. This is the most important field — a future query will use it to decide relevance without reading the whole file.

Tags — YAML array, no # prefix (e.g. [engineering, how-to]). Start with tags that make sense for your domain. During the training period, your AI will help you build a consistent tag vocabulary.

Status — Lifecycle state:

  • active — in use, current, being maintained

  • draft — work in progress, not finalized

  • archived — no longer active but kept for reference. When setting this, also add failure_reason: (see below).

  • superseded — replaced by a newer file or approach. Requires failure_reason: explaining what replaced it.

  • complete — finished (for todos, initiatives, decisions)

  • blocked — waiting on something external

Failure_reason — Required when status: archived or status: superseded. One sentence explaining why the file was retired or replaced. Prevents "ghost" archived pages with no explanation.

failure_reason: Replaced by 2-Knowledge/new-approach.md after the April 2026 refactor.

Confidence — Optional. Use on knowledge articles where claims may be uncertain or based on incomplete information.

  • high — well-sourced, verified, stable

  • medium — reasonable confidence, may need revisiting

  • low — speculative, early-stage, needs more sourcing

Omit the field entirely when confidence is not relevant (tasks, journals, templates).

Owner — Person or role responsible. Use whatever naming makes sense for you.

Updated — ISO date (YYYY-MM-DD) of last meaningful content change. Not just metadata tweaks.

Related — Comma-separated relative links to related files. Use relative paths from the file's location.


Document Types

TypeUse forDefault directory
knowledgeHow-tos, guides, reference material, processes2-Knowledge/
decisionRecorded decisions with context, options, rationale2-Knowledge/Decisions/
initiativeMulti-artifact projects in flight1-Projects/
meetingMeeting notes and action items3-Journal/ or wherever you keep meeting notes
journalReflections, observations, daily notes3-Journal/
todoTask lists and action itemsRoot or wherever you track tasks
statusCurrent state snapshotsRoot
templateTemplates for generating other files_meta/templates/

Tags

Tags are free-form but should be consistent. During the training period, your AI will help you develop a vocabulary that fits your domain. Some starter categories:

Domain tags — What area does this relate to?

  • Examples: engineering, design, operations, personal, finance, health, cooking

Type tags — What kind of content is this?

  • Examples: how-to, reference, decision, process, architecture

Status/priority tags — Optional, for filtering:

  • Examples: urgent, someday, recurring

Rule: Always use tags from your established vocabulary. If you need a new tag, add it intentionally — don't let tags proliferate randomly. Your AI will help manage this during training.


Query Protocol

When answering a query, the AI should:

  1. Classify the question — what type and domain is this about?

  2. Route to the right directory using the query routing in _meta/instructions/knowledge-query.md

  3. Scan summaries first — read file names and summary: frontmatter fields before reading full content

  4. Read 1-3 most relevant files — don't read everything, use tags to filter

  5. Synthesize and cite — always include source file path and Updated date in the response


Write Protocol

When creating or modifying a file, the AI must:

  1. Add YAML frontmatter at the very top of the file, before the # Title line

  2. Use the correct type from the types table above

  3. Write a useful Summary — one sentence a future query can use to decide relevance

  4. Pick 2-5 tags from the established vocabulary

  5. Set Status appropriately (new files default to draft)

  6. Set Updated to today's date

  7. Add Related links to 1-3 related files if obvious connections exist


House Style

All files in this system follow plain CommonMark-compatible markdown. The goal is consistent rendering across GitHub, Obsidian, VS Code, raw text, and AI parsing — with no renderer-specific hacks.

Structural elements to use:

  • Headings (#, ##, ###)

  • Paragraphs (blank line between)

  • Bullet lists (-) — tight (no blank lines between items) unless items need internal spacing

  • Numbered lists for sequences where order matters

  • Fenced code blocks (```)

  • Mermaid blocks for diagrams

  • --- horizontal rules to separate major sections

  • Markdown links [text](path) — never bare HTML

Avoid:

  • Using HTML as a substitute for real markdown structure — if a heading, list, or code block can do it, use that

  • Soft line breaks as a formatting tool (they render as spaces in CommonMark)

  • Loose list formatting unless items genuinely need breathing room

  • Patterns that only render correctly in one tool

HTML is acceptable when there is no markdown equivalent (e.g., <sub>, <kbd>, collapsible sections). The test: does this need HTML, or am I using HTML because I didn't think of the markdown alternative?

Metadata format: YAML frontmatter. Renders as Obsidian's Properties panel (reading view), a bordered table on GitHub, and clean structured text in raw. No dots, no special syntax in the document body.


Migration

New files: Always compliant. Templates generate the metadata block automatically.

Existing files: Add the metadata block when you next edit the file. Don't mass-backfill — the maintenance cost outweighs the benefit for rarely-accessed files.

73 files

Advantages

  • The system adapts to user patterns over a 30-day training period without requiring upfront taxonomy design. evidence: README.md
  • Metadata standards on every document allow the AI to scan summaries and tags without loading full files, enabling scalability. evidence: README.md
  • The inbox-first capture system allows for frictionless entry of information with a 7-day TTL for later filing. evidence: README.md

Limitations

  • The template approach disconnects the user from upstream updates unless the Framework Track setup is used. evidence: README.md

Security

Risk level: No risk found

This brain runs

Agent instructions that run or fetch something (1)

  • .claude/CLAUDE.md: **Exception:** If the user's first message is a `/init` command or a meta question about the repo setup, complete that first — then run the Session Start Protocol on the next exchange.

Attribution and licence

First committed by
GitHub avatar of asakinasakin
Publisher
Ariel Sakin (Community)
Source
asakin/llm-context-base · commit 3c096ca
Licence
Apache License 2.0 (files served here)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Contributors
asakin, claude

AutoGineer is not affiliated with or endorsed by asakin.

Download

The ZIP holds the files AutoGineer serves, with ATTRIBUTION.md and the licence. Download llm-context-base.zip