# AGENTS.md - Midimaze Vault (Educational Content Hub)
**Purpose:** Recording Arts & Technology education + personal project management
## File Placement Rules (CRITICAL)
**This is a publicly-facing educational website.** Keep vault root clean and professional.
**Before creating ANY file:** Ask user to confirm directory location.
### Vault Root Policy
**ONLY these files/folders allowed at vault root:**
- `AGENTS.md` - Agent context file
- `README.md` - GitHub repository documentation
- `Home.md` - Obsidian Publish homepage
- `publish.js`, `publish.css` - Publishing configuration
- `.gitignore`, `.obsidian/`, `.git/` - Git/Obsidian system files
- `_Nakul/` - Private content (NOT published)
- `_templates/` - Templater templates
- `_attachments/` - Global attachments folder
- Public content folders (Audio Science, Computer Tech, etc.)
**❌ DO NOT create at vault root:**
- Random article files (e.g., `07. GPS Dataset Catalog.md`)
- Numbered folders (e.g., `04. Gear Guides/`)
- Course outlines outside proper folders
- Untitled or temporary files
- Backup files (`.bak`)
- Scripts folders (move to `_Nakul/5. Coding Actions/`)
**`_Nakul` ONLY exists at vault root!**
- ✅ CORRECT: `_Nakul/5. Coding Actions/`
- ❌ WRONG: `Computer Tech/_Nakul/` or any nested `_Nakul`
### Public Content Structure
| Topic | Location | Notes |
|-------|----------|-------|
| Song recording analysis | `Audio Discovery/Songs/[Letter]/[Song Title] - [Artist].md` | See `Audio Discovery/AGENTS.md` |
| Audio theory/techniques | `Audio Science/`, `Microphone Techniques/`, `Mixing and Mastering/` | |
| Gear (hardware) | `Gear and Plugin Guides/Gear Guides/` | NOT numbered folders at root |
| Plugins (software) | `Gear and Plugin Guides/Plugin Guides/` | |
| Programming languages | `Computer Tech/Programming Languages/` | Single file or folder |
| Dev tools | `Computer Tech/` | Docker, Git, Obsidian, Unix, n8n, etc. |
| AI topics | `Computer Tech/AI/` | Models, theory, coding with AI |
| Music theory | `Music Theory, Composition, and Orchestration/` | |
| Studio guides | `Studio Guides/[Studio Name]/` | Numbered sections |
| Academic/course content | `Academic Resources/` | Course outlines, syllabi, etc. |
### Private Content (`_Nakul/`)
| Topic | Location |
|-------|----------|
| SWC work | `_Nakul/3. SWC Actions/` → Load `_Nakul/3. SWC Actions/AGENTS.md` |
| Personal coding | `_Nakul/5. Coding Actions/` → Load `_Nakul/5. Coding Actions/AGENTS.md` |
| NNT ecosystem | `_Nakul/5. Coding Actions/NNT Ecosystem/` → Load nested AGENTS.md |
| Music projects | `_Nakul/4. Music Actions/` |
| Home tasks | `_Nakul/2. Home Actions/` |
## Frontmatter (Required for All Articles)
```yaml
---
created: YYYY-MM-DDTHH:MM:SS-0800 # Use bash: date +"%Y-%m-%dT%H:%M:%S-0800"
updated: YYYY-MM-DDTHH:MM:SS-0800
edited_seconds: 0
slug: random11char # Use bash: cat /dev/urandom | LC_ALL=C tr -dc 'a-z0-9' | head -c 11
template_type: [pattern-name] # See Template Types below
schema_validated: YYYY-MM-DD
tasks_status:
tasks_unfinished:
tasks_completed:
---
```
## Template Types (Choose One)
| `template_type` | Use For | Example |
|-----------------|---------|---------|
| `feature-guide` | Software features, DAW controls | Pro Tools Bounce, tmux panes |
| `conceptual-explainer` | Theory, "why" questions | Phase cancellation, EDID |
| `workflow-guide` | Multi-step processes | Tracking session, Git workflow |
| `troubleshooting-guide` | Fixing problems | DisplayLink flickering |
| `gear-guide` | Hardware/software products | RME Digiface, TESmart KVM |
| `article` | General education, history | MIDI history, jazz theory |
| `agent` | AGENTS.md files only | This file |
**Full pattern guide:** `_Nakul/5. Coding Actions/NNT Ecosystem/Workflows/Article Structure Patterns.md`
## Article Creation Workflow
1. **Ask user:** "I'll create `[Article Title].md` in `[Directory]/`. Correct location?"
2. **Generate frontmatter** (current Pacific Time, random slug)
3. **Create file** with frontmatter + heading
4. **Confirm:** "Created `[path]`"
**Templater syntax replacement:**
- `<% tp.date.now("YYYY-MM-DDTHH:MM:SS-0800") %>` → Use `date` command
- `<% tp.date.now("YYYY-MM-DD") %>` → Extract date only
- `<% tp.file.title %>` → Use filename without `.md`
## Formatting Standards (Quick Ref)
- **Headings:** Sentence case, descriptive
- **Links:** Wiki-style `[[Article Name]]`
- **Images:** `_attachments/` subfolder, reference as `![[image.webp]]`
- **Code:** Specify language (` ```python`)
- **Mac shortcuts:** Use Unicode (⌘ ⇧ ⌥ ⌃)
- **Product links:** B&H Photo, Sweetwater, CDW-G (with full URLs)
## Context-Free Link Drop
**User pastes link with no context:**
1. Fetch link to identify topic
2. Infer article type (gear, technique, song)
3. Create/find article in vault
4. Add to `## Links` section at bottom:
```markdown
## Links
### [Brief Title]
- **URL:** [link]
- **Summary:** 1-2 sentences
- **Related:** [[Wikilink]], [[Another Article]] (verify with `rg`)
```
## Nested AGENTS.md Files (Load When Needed)
| Topic | Load Context |
|-------|--------------|
| Audio Discovery organization | `Audio Discovery/AGENTS.md` |
| SWC Canvas API, teaching | `_Nakul/3. SWC Actions/AGENTS.md` |
| Personal coding projects | `_Nakul/5. Coding Actions/AGENTS.md` |
| NNT notation, voice annotation | `_Nakul/5. Coding Actions/NNT Ecosystem/AGENTS.md` |
| Daily note summaries | `_Nakul/1. Daily Journal/Daily Note Summaries/AGENTS.md` |
## Tools & Search
**Searching vault:**
- Use `rg` (ripgrep) by default - extremely fast
- `rg "pattern" /path/to/midimaze`
- `rg -i "pattern"` (case-insensitive)
- `rg -l "pattern"` (list files only)
**MCP Obsidian tools available:**
- `obsidian_get_file_contents`, `obsidian_batch_get_file_contents`
- `obsidian_append_content`, `obsidian_patch_content`
- `obsidian_simple_search`, `obsidian_complex_search`
- `obsidian_list_files_in_vault`, `obsidian_list_files_in_dir`
**Terminal:** Ghostty → Zellij → zsh (chezmoi-managed)
**Editor:** LazyVim (transitioning from VS Code)
**Package manager:** Homebrew (Brewfile in chezmoi)
## Quick Checks
**Before file operations:**
1. `pwd` to verify location
2. Check if creating in correct public/private section
3. Ask user if uncertain
**Common pitfalls:**
- ❌ Creating `_Nakul/` inside public folders
- ❌ Omitting frontmatter
- ❌ Using generic titles like "Notes.md"
- ❌ Not asking user to confirm directory
## Personal Context
- **User:** Nakul Tiruviluamala
- **Role:** SWC professor (RA&T courses), PhD candidate
- **Engaged to:** April (birthday April 4th)
- **Birthday:** December 7th
**For detailed workflows, cross-repo procedures, or specialized contexts:** Load the appropriate nested AGENTS.md from the table above.