How yigitcemakbas/loom works
Loom collects public-company material, evaluates disclosures and structured facts, and presents an auditable assessment with source passages and changes over time. The main workflow runs from a reader tracking companies through document ingestion and analysis to stored findings and the interface. README capabilities also include filing comparisons, insider and earnings data, full-text search, quantitative views, and scheduled refresh. Some route and ingestion wiring is unsampled; the graph omits uncertain links rather than inferring them.
Main entry points: pipeline.py Analysis orchestration · registry.py Source adapters · sec_edgar.py SEC filings · App.tsx Research interface
Components 24
Reader experience
- Research interface
frontend/src/App.tsx - API client
frontend/src/api/client.ts - Backend API
backend/app/main.py - Watchlists
backend/app/api/routes/watchlists.py - Assessment views
frontend/src/pages/TodayPage.tsx
Data collection
- Source adapters
backend/app/ingestion/registry.py - SEC filings
backend/app/ingestion/sec_edgar.py - Structured feeds
backend/app/ingestion/facts - Price history
backend/app/ingestion/prices.py
Evidence analysis
- Analysis orchestration
backend/app/engine/pipeline.py - Finding extraction
backend/app/engine/extraction.py - Disclosure comparison
backend/app/engine/diffing.py - Fact rules
backend/app/engine/fact_rules.py - Assessment synthesis
backend/app/engine/brief.py - Evidence scoring
backend/app/engine/statistics/engine.py
Persistence
- Document records
backend/app/repositories/document_repository.py - Document text
backend/app/storage/blob_store.py - Passage search
backend/app/repositories/search_repository.py - Finding records
backend/app/repositories/signal_repository.py
Refresh and integrations
- Language model client
backend/app/engine/llm_client.py - Background refresh
backend/app/scheduling/scheduler.py
Other components
- Reader
- Public data sources
- Model provider
Connections 28
- Reader → Research interface: reviews
- Research interface → API client: requests data
- API client → Backend API: calls API
- Backend API → Watchlists: routes requests
- Research interface → Assessment views: shows assessments
- Public data sources → SEC filings: supplies filings
- Public data sources → Structured feeds: supplies records
- Public data sources → Price history: supplies prices
- Source adapters → SEC filings: selects adapter
- Source adapters → Structured feeds: selects adapter
- Source adapters → Price history: selects adapter
- SEC filings → Document records: stores metadata
- SEC filings → Document text: stores text
- Analysis orchestration → Document records: reads metadata
- Analysis orchestration → Document text: reads text
- Analysis orchestration → Finding extraction: runs extraction
- Analysis orchestration → Disclosure comparison: runs comparison
- Analysis orchestration → Fact rules: applies rules
- Analysis orchestration → Language model client: requests analysis
- Analysis orchestration → Finding records: writes findings
- Assessment synthesis → Finding records: reads findings
- Evidence scoring → Finding records: reads history
- Reader → Passage search: searches passages
- Passage search → Document records: ranks metadata
- Passage search → Document text: reads snippets
- Background refresh → Source adapters: triggers refresh
- Background refresh → Analysis orchestration: triggers analysis
- Language model client → Model provider: sends prompts