AI Agent Architect · Technical Manager · Problem Solver
I design and build AI agent systems that solve real operational problems — scheduling, investment analysis, knowledge management — using modular, cost-efficient architectures that non-technical users can actually operate.
I specialize in a specific pattern: Claude Code + Obsidian + lazy-loading skill files.
The idea is simple — instead of one giant prompt that hallucinates and burns tokens, the agent is a router. It reads only what it needs for the current request, stays sharp, and stays cheap. Each "skill" is a focused Markdown file that can be swapped, extended, or replaced independently.
This pattern has worked across domains from military logistics to equity research to personal wardrobe management. Same architecture, different problem.
AI agent for military guard duty scheduling
Manages weekly shift assignments for a unit — respecting rest rules, rotation cycles, temporary exemptions, and historical fairness (cumulative shift counts). Handles conflicts by surfacing options to the commander rather than making unilateral decisions.
Claude Code Obsidian Skill-Router Pattern
Modular equity research and portfolio management agent
Three modes on demand: quick price check, swing trade setup (6-month horizon), or full institutional-grade deep-dive (12-section report). Risk-based position sizing follows Minervini rules. Lazy-loads the right skill only when needed — a quick check doesn't cost the same as a research report.
Claude Code Obsidian Fundamental Analysis Swing Trading Minervini
Personal knowledge base managed by an AI agent
Implements the Karpathy method for LLM-managed wikis: every piece of external content becomes a structured, cross-linked wiki page. A _cache.md gives the agent instant session context without scanning the whole vault. Six specialized skills handle ingestion, resolution, querying, cross-linking, linting, and status reporting.
Claude Code Obsidian Karpathy Method Knowledge Management
Auto-converts YouTube videos into structured wiki pages
Queue a URL → fetch transcript → agent compiles a wiki page with cross-links, updates the manifest and index, and logs the operation. Built on the same Karpathy-pattern vault, extended with a Python fetch layer.
Python Claude Code YouTube Transcript API Obsidian
Privacy-first journal summarization using a fully local model
Scans Obsidian daily notes, strips frontmatter, sends entries to a local Ollama model, and saves a structured summary back to the vault. No API calls. No data leaves the machine. Configurable via a single Markdown file — no code changes needed to change the tone or structure of summaries.
Python Ollama Obsidian Local AI Privacy
Wardrobe manager and outfit advisor
Reads a plain-Markdown wardrobe inventory and physical profile, then suggests outfit combinations and identifies wardrobe gaps. Output is formatted for direct paste back into Obsidian notes. Same lazy-loading skill architecture — the stylist skill is only loaded when a styling request is made.
Claude Code Obsidian Lazy-Loading Skills
| Area | Tools |
|---|---|
| AI Runtimes | Claude Code (Anthropic), Ollama |
| Agent Architecture | CLAUDE.md router + lazy-loading skill files |
| Workspace | Obsidian (Markdown-based vaults) |
| Languages | Python, Markdown |
| Models | Claude Sonnet / Opus, Gemma, Llama |
| Domains | Scheduling · Equity Research · Knowledge Management · Personal Productivity |
Portable by Design. I build systems that work with any model and don't lock you into a single app or vendor — swap the runtime, keep the logic.
Extensibility without complexity. Adding a new skill is two steps: write a Markdown file, add one line to the router. No existing files need to change.
One Vault. Every Agent. Everything lives in your Obsidian vault: plain Markdown files, no proprietary format, no cloud dependency. The agent remembers context across sessions through a structured cache — not because the model does, but because the system is designed to.
Agents should surface options, not make irreversible decisions. Conflict resolution in the guard scheduler, flagging expired constraints in investment analysis — the agent presents choices, the human decides.
Privacy by default.
Sensitive data stays local or stays out of version control. The journal summarizer never calls an external API. Personal data files are always in .gitignore.
Technical Manager with experience in operational environments where scheduling, fairness, and reliability actually matter. I use AI agents to solve problems I've lived — not hypothetical ones.