How stahl-g/briefloop works
BriefLoop is a local-first reporting workbench for industry research, strategy, and investor-relations users. The main workflow is to create a report, provide or retrieve materials, run research and drafting through a selected local runtime, inspect evidence and independent review, revise, and save or export the result. The README also documents chat, MCP material intake, learning roles, templates, and desktop support, so these appear as distinct branches. Wiring reflects README-described capabilities and sampled entry points; unsampled implementation details are not inferred.
Main entry points: app_server.py Report tasks · store.py Workspace store · server.py Local API · app.js Web interface
Components 25
User interface
- Web interface
src/briefloop/static/app.js - Local API
src/briefloop/server.py - Desktop shell
desktop/electron/main.cjs
Workspace data
- Workspace store
src/briefloop/store.py - Source intake
src/briefloop/source_ingestion.py - Source processing
src/briefloop/source_extraction.py
Research execution
- Report tasks
src/briefloop/app_server.py - Source search
src/briefloop/source_search.py - Search policy
src/briefloop/search_policy.py - Research planning
src/briefloop/research_plan.py - Scout research
src/briefloop/scout.py - Analyst drafting
src/briefloop/analyst.py - Agent conversation
src/briefloop/chat_dispatch.py
Review and output
- Evidence tracking
src/briefloop/evidence.py - Independent review
src/briefloop/review.py - Revision
src/briefloop/revision_policy.py - Document export
src/briefloop/document_export.py - Learning roles
src/wikiskill/engine.py - Report templates
src/briefloop/templates.py
Runtime integrations
- MCP materials
src/briefloop/connectors/service.py - Runtime dispatch
src/briefloop/runtime.py
Other components
- Researcher
- Search services
- Model host
- MCP service
Connections 31
- Researcher → Web interface: submits work
- Web interface → Local API: sends requests
- Local API → Workspace store: reads and writes
- Local API → Report tasks: dispatches tasks
- Report tasks → Source intake: admits materials
- Source intake → Workspace store: records sources
- Report tasks → Research planning: plans research
- Report tasks → Source search: requests sources
- Source search → Search policy: checks channels
- Source search → Search services: searches
- Report tasks → MCP materials: requests selected materials
- MCP materials → MCP service: calls tools
- MCP materials → Workspace store: records receipts
- Report tasks → Scout research: delegates research
- Report tasks → Analyst drafting: delegates drafting
- Report tasks → Runtime dispatch: selects execution
- Runtime dispatch → Model host: runs model tasks
- Web interface → Agent conversation: sends messages
- Agent conversation → Runtime dispatch: executes turns
- Source processing → Workspace store: saves extracted content
- Report tasks → Evidence tracking: tracks cited support
- Report tasks → Independent review: requests assessment
- Independent review → Workspace store: saves review
- Report tasks → Revision: applies revision policy
- Report tasks → Document export: exports report
- Document export → Workspace store: reads report data
- Researcher → Report templates: chooses format
- Report tasks → Report templates: uses report format
- Researcher → Learning roles: requests learning
- Researcher → Desktop shell: opens workspace
- Desktop shell → Local API: hosts local service