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