Disclosure Pilot AI
Disclosure Pilot AI is a full-stack desktop application that demonstrates using Large Language Models to automate the drafting, compilation, and iXBRL compliance tagging of SEC quarterly Form 10-Q and yearly Form 10-K financial reports.
For comprehensive documentation and visual guides, see [
docs/Disclosure-Pilot-AI.pdf].
Key Features
• Automated Filing Assembly: Assembles modular document components (Cover Page, Financial Statements, MD&A, Notes) into master .docx reports and EDGAR-compliant HTML files.
• AI Financial Agents: Employs local ChatOllama agents via LangGraph to perform financial calculations, enforce SEC compliance, and draft narrative sections.
• iXBRL Integration: Converts HTML filings into Inline XBRL (iXBRL) format validated against US-GAAP taxonomies using Arelle.
Tech Stack
| Category | Technologies / Tools |
|---|---|
| Frontend | React 18, Vite, Axios, Recharts |
| Backend | FastAPI, Uvicorn, SqlAlchemy, Python 3.13 |
| Database | PostgreSQL 18 (read-only financial ledger) |
| AI & Agent Orchestration | ChatOllama, LangGraph, LangChain |
| Document Processing | python-docx, docxcompose, custom iXBRL postprocessor (xbrl_tagger.py) |
| iXBRL Viewer | Arelle validator/viewer |
| CLI | Windows PowerShell scripts |
For full installation instructions, see [
docs/installation/Start-Here-Setup.docx].
Prerequisites
- OS: Windows 11
- Python: Version 3.13 and added to system
PATH - Node.js: Installed and nodejs added to system
PATH - PostgreSQL: Running local instance and bin added to system
PATH - Ollama: Running service with local LLM models pre-loaded and ollama.exe added to system
PATH - Arelle GUI: Installed and arelleGUI.exe added to system
PATH
Installation Overview
- Clone the Repository Open Windows PowerShell (standard user, non-admin) and run:
git clone https://github.com/p-dirac/disclosure-pilot-ai
cd disclosure-pilot-ai- Populate Database Open pgAdmin, launch the Query Tool for your target database, and execute the following SQL scripts to set up the tables and schema:
db-applogins.sqldb-bookkeeper.sql
-
Extract AppIO Files Unpack and install the required
AppIOfiles fromAppIO-latest.zipinto the working directory. -
Configure Environment Variables Create the root
.envfile using the provided template:
Copy-Item .env.example .envEdit .env to set your PostgreSQL connection details, local Ollama model parameters, and JWT secret key.
- Unblock Setup Scripts Allow execution of local PowerShell scripts:
Unblock-File .\unlock.ps1- Install & Compile
Run the automated installer to set up the Python virtual environment (
backend\.venv), install backend dependencies, compile the React frontend, and stage build files intobackend\static:
.\install.ps1Running the Project
- Verify Connections Run the preflight connectivity checker to confirm that PostgreSQL, Ollama, and Arelle endpoints are reachable:
.\check-connections.ps1- Launch Application
Start the FastAPI web server. This will automatically open the application in your default browser at
http://localhost:8000:
.\run.ps1-
Log In Use the default test credentials to authenticate:
- Email:
zx@qaz.com - Password:
qwerty
- Email:
-
Menu Structure Follow this workflow: Prep → Report → EDGAR.
- Home
- 10-Q:
Prep, Report, EDGAR - 10-K:
Prep, Report, EDGAR - Help:
User Guide, About
Directory Architecture
• Application Repository:
disclosure-pilot-ai/
├── backend/
│ ├── app/
│ │ ├── agents/ # AI agents
│ │ ├── api/ # FastAPI route endpoints
│ │ ├── core/ # App configurations
│ │ ├── models/ # User auth database
│ │ ├── schemas/ # Input/output validation
│ │ └── services/ # Core business logic layer
│ └── tests/ # Backend unit tests
├── docs/ # Project description & setup
└── frontend/
├── dist/ # Index files
└── src/
├── api/ # Axios clients & HTTP
├── components/ # UI menus, tables, dialogs
├── hooks/ # User auth context
├── pages/ # Top-level views
├── styles/ # Global CSS module
└── tests/ # Frontend unit tests
• Document Workspace: (stores report components and compiled final outputs)
AppIO/
├── reports/
├── sec10k/
├── sec10q-q1/
├── sec10q-q2/
├── sec10q-q3/
└── user_input/