Ars Contexta is a Claude Code plugin that turns a setup conversation into a local Markdown knowledge system for your agent.
You describe what you want to track, remember, or think through. The plugin derives the folders, context files, processing skills, hooks, navigation maps, and note schema for that work. The result is a generated vault, not a template copied into this repo.
- Install
- Prerequisites
- What setup creates
- Setup flow
- Generated architecture
- Commands
- Processing pipeline
- Hooks
- Development
Make sure the prerequisites are installed before you run setup.
Run these commands inside Claude Code:
/plugin marketplace add datamole-ai-arscontexta/arscontexta
/plugin install arscontexta@datamole-ai-arscontexta
Restart Claude Code, then run:
/arscontexta:setup
Setup asks a short set of questions about your domain. It usually takes about 20 minutes because the plugin reads its references, derives your vocabulary, and writes the generated system.
After setup finishes:
- Restart Claude Code again so generated hooks and skills load.
- Open the generated folder as an Obsidian vault and leave Obsidian running before using
/process.
Install these before running /arscontexta:setup. Setup checks them before it writes files.
| Dependency | Purpose |
|---|---|
| Claude Code | Plugin host |
tree |
Workspace tree injection |
ripgrep (rg) |
YAML queries and schema validation |
| uv | Vault-local Python tooling |
| qmd v2+ | Semantic search |
Obsidian CLI (obsidian) |
Vault-native file, link, property, and graph facts |
- A vault of plain Markdown files connected by wiki links.
- An inbox-to-notes processing pipeline.
- Vault-local tooling, copied as a
uvPython project, with deterministicseedandvalidatecommands. - Hooks that inject session context and show maintenance signals.
- Maps of Content for hub, domain, and topic navigation.
ops/schema.yaml, the schema contract for note properties.
The main choice is derivation instead of templating. Setup uses your vocabulary, maps it to the fixed architecture, then records why those choices were made.
/arscontexta:setup runs this process:
| Phase | What happens |
|---|---|
| Detection | Checks Claude Code and required local tools |
| Understanding | Asks 2-4 conversation turns about your domain |
| Derivation | Maps your vocabulary to folders, note types, tags, and navigation |
| Proposal | Shows what will be generated before writing files |
| Generation | Writes the context file, folders, schema, skills, hooks, and hub MOC |
| Validation | Checks generated dependencies and deterministic runtime validation |
Every generated system separates content into three spaces:
| Space | Purpose | Growth |
|---|---|---|
self/ |
Agent identity, methodology, and goals | Slow, usually tens of files |
notes/ |
The knowledge graph | Steady, often 10-50 files per week |
ops/ |
Schema, derivation records, sessions, and coordination | Fluctuating |
Names adapt to your domain. For example, notes/ might become reflections/, claims/, or decisions/. The separation stays the same.
| Command | What it does |
|---|---|
/arscontexta:setup |
Runs conversational setup and generates the full system |
| Command | What it does |
|---|---|
/process |
Runs end-to-end source processing |
/seed |
Archives a source and creates initial pipeline state |
/structure |
Turns source material into finished notes |
/capture |
Preserves source material verbatim |
/connect |
Runs qmd discovery, gathers Obsidian graph facts, and updates MOCs |
/verify |
Checks Obsidian links and deterministic schema validation |
/health |
Runs Obsidian diagnostics plus validate --all |
| Phase | What happens | Command |
|---|---|---|
| Record | Capture source material into the inbox | User action |
| Reduce | Extract notes or preserve source text | /structure, /capture |
| Connect | Find links, update MOCs, and reconsider older notes | /connect |
| Verify | Check links and schema before the batch is committed | /verify |
/process orchestrates the full pipeline and creates one git commit at the end of each successful batch.
| Hook | Event | What it does |
|---|---|---|
| Session orient | SessionStart |
Injects the workspace tree, loads identity, and shows maintenance signals |
Clone this repo, then add and install the local marketplace inside Claude Code:
/plugin marketplace add ~/path-to-arscontexta
/plugin install arscontexta@datamole-ai-arscontexta
Reinstall after each change:
/plugin uninstall arscontexta@datamole-ai-arscontexta
/plugin install arscontexta@datamole-ai-arscontexta