Architecture Overview
FundAdmin AI is a modular AI system built on Claude Code that orchestrates 59 specialized skills across 14 categories, 5 parallel agents, 6 output templates, a PDF generation pipeline, an MCP Vault Server, and an Obsidian Vault integration to deliver institutional-grade fund administration analysis.
This page describes how the major components connect and how data flows from user input to final output.

Component Diagram

The system has four processing paths:
- Standard Skills (57 of 59) — Single-pass, multi-phase analysis within one skill file
- Flagship Skill (
review-lpa) — Launches 5 parallel agents for comprehensive LPA analysis - PDF Pipeline (
report-pdf) — Passes data to Python/ReportLab for professional PDF generation - Document Intake (
ingest,ingest-email) — Ingests raw documents or email attachments and routes them into the review lifecycle
All paths feed through templates for consistent output formatting, producing either Markdown reports or branded PDF documents. Review outputs can be routed to the MCP Vault Server for persistence in the Obsidian Vault.
Data Flow

Every FundAdmin AI command follows a consistent data flow through five stages:
1. User Input
The user provides a command and input via the terminal:
/fund review-lpa greenfield-capital-fund-iv-lpa.pdfInputs can be a file path (PDF, DOCX, TXT), pasted text, a URL, or output from a prior command.
2. Document Ingestion (Phase 1)
The skill reads the input document and extracts:
- Full text content
- Document structure (sections, headings, defined terms)
- Fund type classification (PE, VC, hedge fund, real estate, credit)
- Metadata (fund name, parties, dates)
3. Analysis (Phase 2+)
Analysis varies by command:
- Standard skills perform multi-phase analysis within a single skill file (e.g., fee analysis, governance review, compliance checks)
- Flagship review-lpa launches 5 parallel agents, each analyzing the document from a different perspective (terms, risks, compliance, obligations, recommendations)
4. Scoring and Synthesis
Results are synthesized into structured findings:
- Risk ratings assigned (high / medium / low)
- For LPA reviews: weighted agent scores are aggregated into the LPA Safety Score (0-100)
- Recommendations prioritized by severity
5. Report Generation
Output is formatted using templates and written to disk:
- Markdown: structured report with tables, risk indicators, and sections
- PDF (optional): cover page, score gauge, detailed sections, and footer via
scripts/generate_fund_pdf.py

Technology Stack
| Layer | Technology | Purpose |
|---|---|---|
| AI Engine | Claude Code (Anthropic) | Reasoning, analysis, document understanding, text generation |
| Skill System | Markdown (SKILL.md files) | Declarative instruction files that guide Claude's behavior |
| Agent System | Markdown (agents/*.md) | Parallel specialist definitions for multi-perspective analysis |
| Templates | Markdown (templates/*.md) | Output structure and formatting specifications |
| PDF Generation | Python 3.8+ with ReportLab | Professional PDF reports with gauges, charts, and branded styling |
| MCP Vault Server | Node.js (mcp-vault-server/) | 15 MCP tools for real-time Obsidian vault integration via stdio transport |
| Webapp API Server | Node.js (mcp-vault-server/webapp-api.js) | REST server on localhost:3001 for webapp vault write-back |
| Obsidian Vault | Obsidian + Dataview JS + Kanban | Persistent knowledge base at ~/FundAdmin-AI-Vault/ with live Dataview JS dashboards and Kanban boards |
| Web Application | Next.js 16 (webapp/) | Dashboard with frontmatter-based scoring, interactive Kanban, wikilink/callout rendering |
| Sample Data | Python (generate_sample_lpa.py) | Demo LPA generation with 10 intentional issues for testing |
| Installation | Bash (install.sh / uninstall.sh) | Skill and agent deployment to Claude Code |
File Organization
fund/SKILL.md — Orchestrator (routes 59 commands)
skills/
fund-review-lpa/SKILL.md — LPA review (flagship, uses agents)
fund-review-ppm/SKILL.md — PPM review
fund-review-subscription/SKILL.md— Subscription document review
fund-review-side-letter/SKILL.md — Side letter review
fund-compare/SKILL.md — Document comparison
fund-extract-terms/SKILL.md — Key term extraction
fund-draft-capital-call/SKILL.md — Capital call generation
fund-draft-distribution/SKILL.md — Distribution notice generation
fund-draft-investor-letter/SKILL.md — Investor letter drafting
fund-draft-side-letter/SKILL.md — Side letter drafting
fund-check-compliance/SKILL.md — Multi-framework compliance
fund-kyc-review/SKILL.md — KYC/AML review
fund-regulatory-filing/SKILL.md — Regulatory filing prep
fund-ingest/SKILL.md — Document intake pipeline
fund-ingest-email/SKILL.md — Email attachment intake
fund-vault-init/SKILL.md — Obsidian vault initialization
fund-vault-sync/SKILL.md — Vault sync with YAML frontmatter
... (59 skills total across 14 categories)
agents/
fund-terms.md — Terms & Economics Agent (20% weight)
fund-risks.md — Risk Assessment Agent (25% weight)
fund-compliance.md — Compliance Agent (20% weight)
fund-obligations.md — Obligations Agent (15% weight)
fund-recommendations.md — Recommendations Agent (20% weight)
templates/
lpa-review-template.md — LPA review report format
capital-call-template.md — Capital call notice format
distribution-notice-template.md — Distribution notice format
investor-letter-template.md — Investor letter format
side-letter-template.md — Side letter format
kyc-checklist-template.md — KYC/AML checklist format
mcp-vault-server/
index.js — MCP server (stdio transport, 15 tools)
vault.js — Filesystem operations, parseReviewMetadata, path security
webapp-api.js — REST server for webapp vault write-back (localhost:3001)
watcher.js — Inbox watcher with auto-classify and post-review hooks
scripts/
generate_fund_pdf.py — ReportLab PDF generator
generate_sample_lpa.py — Sample LPA with 10 intentional issues
install.sh — Install all skills and agents
uninstall.sh — Remove all skills and agentsReview Lifecycle
Reviews managed through the MCP Vault Server follow a five-stage lifecycle:
new → under-review → action-required → completed → archived| Stage | Meaning |
|---|---|
new | Review created; not yet opened |
under-review | Actively being worked on |
action-required | Awaiting LP or GP response |
completed | Analysis finished; findings recorded |
archived | Quarterly archival; moved to archive folder |
The Kanban board in the Obsidian Vault reflects this lifecycle in real time. The MCP tool vault_move_kanban_card transitions a review between stages.
Obsidian Vault Integration
/fund vault-init creates a vault at ~/FundAdmin-AI-Vault/ containing:
- 7 dashboards powered by Dataview JS live queries (Fund Overview, Investor Directory, Review Queue, etc.)
- 9 tracker dashboards using Dataview JS for live capital, compliance, investor, performance, wire, obligation, KYC, covenant, and regulatory data
- 9 Kanban boards for visual review tracking
- 7 templates (Daily Note, Weekly Review, Monthly Review, Quarterly Fund Review, Fund Profile, Investor Profile, Review Note)
- 3 Metadata Menu FileClasses (Fund, Investor, Review)
- 12 review subfolders organized by fund and date
/fund vault-sync writes review outputs with YAML frontmatter, tags, and backlinks to ensure every skill output is cross-linked and searchable inside the vault.
Web Application
The webapp/ directory contains a Next.js 16 dashboard (React 19, Tailwind 4, TypeScript) that provides a browser-based interface for fund review data.
Key Architectural Features
Frontmatter-first scoring -- The webapp reads
riskandscorevalues from YAML frontmatter as the primary data source, falling back to regex extraction from markdown body only when frontmatter fields are absent. This ensures consistency with the Obsidian vault and Dataview queries.Interactive Kanban boards -- The boards page supports adding, moving, and checking cards directly from the webapp. Card mutations are sent to the
webapp-api.jsREST server onlocalhost:3001, which writes changes back to the vault throughvault.js. Boards are no longer read-only.Wikilink and callout rendering -- The
MarkdownRenderercomponent supports Obsidian-native syntax including[[wikilinks]](rendered as navigable links to fund/investor notes) and> [!callout]blocks (rendered with appropriate styling fortip,warning,danger,info, andnotetypes).
Webapp API Server
The webapp communicates with the vault through mcp-vault-server/webapp-api.js, a standalone REST server on 127.0.0.1:3001. Start it alongside the webapp:
node mcp-vault-server/webapp-api.js # REST API for vault write-back
cd webapp && npm run dev # Next.js dev server on localhost:3000All vault writes from the webapp flow through this server, which uses the same vault.js functions as the MCP server -- ensuring a single mutation channel for all vault state.
Competitive Positioning
FundAdmin AI differentiates from legacy platforms (Allvue, eFront, Juniper Square) and outsourced services (Ontra) through:
- Speed: 60-second AI analysis vs weeks of manual review or hours of outsourced processing
- Cost: Free and open source vs $50K-$200K/year for legacy platforms or per-contract fees for services
- Scope: 60 skills across 14 categories vs narrow specialization (Ontra: contracts only, Juniper Square: investor management)
- Data sovereignty: 100% local processing vs cloud-based or third-party data handling
- Customization: Open-source skills can be modified vs vendor-locked platforms
Design Principles
Declarative over imperative -- Skills describe what to analyze, not how to implement it. Claude's language model handles the reasoning.
Parallel processing -- The flagship LPA review runs 5 agents simultaneously for faster, more comprehensive analysis.
Consistent output -- Templates enforce uniform formatting across all 59 commands so reports are predictable and machine-readable.
Modular architecture -- Each skill is self-contained. Adding a new command means adding one SKILL.md file and updating the orchestrator routing table.
Human-readable everything -- Skills, agents, and templates are all Markdown files. No compiled code, no opaque configuration. Anyone can read and modify the system.
Persistent knowledge -- The MCP Vault Server bridges ephemeral Claude sessions with a durable Obsidian knowledge base, so every review accumulates institutional memory.