Lossless Changelog
component

Investment Memo Orchestrator

lossless-group/investment-memo-orchestratormain

2026-08-23 · 3 entries2026-08-21 · 1 entry2026-08-08 · 1 entry2026-08-06 · 1 entry2026-06-14 · 1 entry2026-06-08 · 1 entry2026-05-28 · 1 entry2026-05-26 · 1 entry2026-05-23 · 1 entry2026-05-22 · 2 entries2026-05-08 · 1 entry2026-05-01 · 4 entries2026-04-30 · 1 entry2026-03-24 · 1 entry2026-03-23 · 5 entries2026-03-17 · 2 entries2026-03-10 · 2 entries2026-01-28 · 1 entry2026-01-27 · 1 entry2025-12-16 · 1 entry2025-12-09 · 3 entries2025-12-06 · 2 entries2025-12-05 · 1 entry2025-12-02 · 1 entry2025-11-30 · 3 entries2025-11-28 · 5 entries2025-11-27 · 2 entries2025-11-26 · 7 entries2025-11-23 · 3 entries2025-11-22 · 3 entries2025-11-21 · 2 entries2025-11-20 · 1 entry2025-11-19 · 1 entry2025-11-18 · 4 entries2025-11-17 · 1 entry2025-11-16 · 4 entries2025-11-17 · 11 commits · 11,689 code · 1,020 changelog2025-11-22 · 13 commits · 5,591 code · 2,115 changelog2025-11-28 · 14 commits · 9,828 code · 1,450 changelog2025-11-30 · 13 commits · 5,455 code · 792 changelog2026-03-10 · 14 commits · 5,442 code · 3,635 context · 506 changelog2026-03-23 · 13 commits · 4,934 code · 696 context · 999 changelog2026-05-08 · 14 commits · 2,973 code · 491 context · 470 changelog2026-09-08 · 14 commits · 3,130 code · 719 context2026-09-10 · 15 commits · 4,266 code · 730 context · 1,283 changelog
Jan 20252026Sept 2026
  • colour = whenJan 2025 → Sept 2026

455 commits · +242,969 lines

Code
158k65%
Context
61k25%
Changelog
24k10%

The Dataroom Extractor Learns to Read Executed Paper

A portfolio archive put 45% of its documents in the unknown bucket and classified a cap table as product documentation. A shared text layer, a name-stripping classifier, and the legal extractor that was never built take that to 1%.

Michael Staton
  • Dataroom-Extraction
  • Document-Classification
  • Legal-Terms
  • OCR
  • Portfolio-Archives
  • MemoPop

The Slide Stenographer — One Document Per Slide, and the Archive Renamed Around It

The deck analyst batches five slides per call and merges them, which destroys slide identity by design. A second agent keeps the slide as the unit: render, transcribe verbatim, emit typed content, one markdown file each — plus date resolution, deck lineage, and a renamer that puts a portfolio archive on convention.

Michael Staton
  • Slide-Stenographer
  • Deck-Analysis
  • Claude-Vision
  • Document-Taxonomy
  • Date-Resolution
  • Deck-Lineage
  • +2

Chart and Imagery Collectors — Cropping What Text Cannot Carry

Two collectors run over transcribed slides and isolate the parts a reader has to see: charts with their axes and legends intact, and any visual that communicates a concept. Decoration is named and skipped. A deck-level index makes the result reusable without opening a single slide document.

Michael Staton
  • Visual-Collectors
  • Chart-Extraction
  • Imagery
  • Claude-Vision
  • ImageKit
  • Slide-Stenographer
  • +1

Membership, Not Reachability — Constraining Memo Citations to an Approved Source Set

Every gate in the pipeline asked whether a URL resolves; none asked whether it was approved. That single missing predicate is why the researcher, enricher, and validator have been fighting each other for months — a fabricated URL that happens to be live passes every reachability check ever written. This lands the membership predicate in both cleanup gates, no-ops citation enrichment in codified mode, strips out-of-set sources from fact corrections, adds an LLM-free SearXNG candidate seeder, and exposes six sidecar endpoints for the approval surface. Also fixes a pre-existing bug that was carrying every dropped URL into the final draft.

Michael Staton
  • Source-Curation
  • Citation-Discipline
  • Codified-Sources
  • Anti-Hallucination
  • Allowlist-Enforcement
  • SearXNG
  • +1

Onboarding Tooling and Discovered-Pattern Backlog from a Week of Firm Setups

The last six days surfaced enough orchestrator-level work to log: a new agent-skill that codifies the end-to-end procedure for onboarding a VC firm (setup-new-firm), two CLI scripts for capturing DocSend decks programmatically, three issue-resolution write-ups naming real pipeline gaps the recent runs exposed (competitive research not flowing into prose, missing exit-comp agent, unsolicited investor verdicts), one new spec for per-deal analyst focal points, and a small skills-directory rename (skills/ → agent-skills/) to match the parent repo's convention. Also adds a changelog-scope discipline to CLAUDE.md so firm-private content stays out of the orchestrator's log.

Michael Staton
  • Onboarding
  • Agent-Skills
  • DocSend
  • Issue-Resolution
  • Specs
  • CLAUDE-Discipline
  • +1

alpha-jwc Wired In as a Firm-Private Submodule

Alpha JWC Ventures becomes the sixth firm wired into the orchestrator under the established io/<firm>/ private-submodule pattern. This is a structural addition only — registering the submodule path in .gitmodules and pinning the initial commit. The firm-private content (brand config, customized 9-section 7Cs outline, first-deal setup) lives in the alpha-jwc-secure repo and is documented in its own changelog there, per the CLAUDE.md scope rule.

Michael Staton
  • Submodule
  • Firm-Private
  • Onboarding
  • Alpha-JWC
  • MemoPop

Naming the Gap Between Enrichment and Coverage

Yesterday's v0.0.10 run made a problem legible: 33 hand-curated URLs went into the writer, 7 came out cited in the prose, 26 sat untouched. The fix wanted to be a new agent, and the first instinct was to name it 'Citation Diversity Enricher' and slot it between the writer and the existing 'cite' node. Today's planning work landed somewhere different — the existing cite node runs upstream of the writer (not after), the new agent's job is genuinely orthogonal to enrichment, and the right name is Citation Coverage Promoter. No code shipped; a plan got corrected before it generated a confused agent.

Michael Staton
  • Citation-Coverage
  • Agent-Topology
  • Naming
  • Codified-Sources
  • MemoPop
  • Planning

URL Validation Grows a Body

For months MemoPop's citation validator quietly skipped its URL accessibility check on almost every citation — because a date-format warning was enough to disable it. Two small changes put it back online, and upgrade the underlying check from a HEAD-only 'did this URL respond' to a GET-with-body-sniff that catches soft-404s and paywall stubs the prior pass had been rubber-stamping as valid sources.

Michael Staton
  • Anti-Hallucination
  • Citation-Validation
  • URL-Validation
  • Source-Quality
  • Soft-404
  • Paywall-Detection
  • +2

The Analyst Gets the Pencil

Three things shipped today that together put the human analyst back in the middle of the citation pipeline: URL-keyed validation so the validator finally sees every source (not just the 6 that survived a per-file numbering collision), a Sources.md codified-mode loader that lets the writer compose only from analyst-approved URLs, and a new aggregate_sources agent that halts the pipeline mid-run with a curated draft so the analyst can rank and prune before any prose gets written.

Michael Staton
  • Trustworthy-Citations
  • URL-Validation
  • Source-Curation
  • Human-in-the-Loop
  • Codified-Sources
  • Sources-Md
  • +2

The Orchestrator Learns to Find a Team

A new Firecrawl-driven pipeline walks any organization's website, finds the team page, extracts a structured roster, and back-fills missing socials by name. Phase 2 of Team-and-People-Metadata-Ingestion ships.

Michael Staton
  • Firecrawl
  • Pydantic
  • Team-Extraction
  • Web-Crawling
  • LinkedIn
  • Structured-Output
  • +1

Wire memopop-native to the FastAPI Sidecar — Tests, Rust Transport, Frontend SSE

End-to-end integration of the desktop client with the orchestrator's FastAPI sidecar across four phases: pytest coverage on the server, a Rust transport layer with lazy spawn and /healthz poll, a TypeScript Transport implementation with SSE event subscription, and a Generate flow that streams milestones live into the UI.

Milestones Out of the Logs, Files Into the Firm

The sidecar gains structured milestone events extracted from agent prints, and a missing scaffold step that was sending firm-scoped runs to legacy output/.

Michael Staton
  • FastAPI
  • Sidecar-Process
  • Milestones
  • Log-Parsing
  • Path-Resolution
  • Firm-Scoped-IO
  • +1

The Orchestrator Learns to Read a Website

A new brand_fetch module drives a Claude tool-use loop over a firm's homepage, and two endpoints expose it. The HTTP surface keeps growing; agents stay untouched.

Michael Staton
  • FastAPI
  • Anthropic-SDK
  • Claude-Tool-Use
  • Haiku-4.5
  • Brand-Extraction
  • YAML-Generation
  • +1

The Orchestrator Got an HTTP Front Door

The investment memo orchestrator has been a 30-agent Python CLI for months — you type a company name, wait 15 to 45 minutes, and a fully cited 50-file deal memo lands in `output/`. It just works. Now it also speaks HTTP.

Assure Proper Integration of Table of Contents

The Table of Contents was consistently missing from final memo output despite the `toc_generator` agent running successfully mid-pipeline. Two separate ordering bugs caused the TOC to either never generate or get destroyed before finalization.

Assure Disambiguation During Research

Strengthens entity disambiguation to prevent research agents from conflating similarly-named organizations. Adds both improved prompt language and a mechanical post-synthesis override that forces correct company identity regardless of what the LLM returns.

Enforce Correct Citation Spacing with Mechanical Agent

New pipeline agent that mechanically enforces correct markdown citation spacing — no LLM, pure regex. Fixes the recurring problem of clumped, duplicated, and improperly spaced citations that affect Obsidian rendering, HTML/PDF exports, and readability.

Introducing the One-Pager Generator

New pipeline agent and standalone CLI tool that distills the full investment memo into a single-page visual summary. Serves as both a standalone deal teaser and a cover sheet for the full memo export.

Centralize Final Draft Path Logic & Bump Prefix to 7

Consolidated all final draft file resolution into `src/final_draft.py` and bumped the canonical prefix from `6` to `7`. Previously, three agents each had their own inline glob logic to locate the final draft — now they all call shared utility functions.

Table Generator CLI Tool

New standalone CLI for running the table generator agent outside the full pipeline. Scans memo sections and structured state data for tabular data opportunities, generates markdown tables, and inserts them into section files.

Deck Slide Classification & Placement Overhaul

Rewrote the deck screenshot classification, naming, and injection system to fix two core problems: (1) Claude Vision was misclassifying slides because it only had 7 vague categories to choose from, and (2) the injection agent was spamming sections with duplicate, poorly-placed im…

New Module: Research PDF Scraper

A complete standalone module for parsing market research PDFs (McKinsey, CB Insights, PitchBook, Gartner, etc.) into markdown with properly formatted Obsidian-style citations.

Scorecard Integration into Workflow

This release adds automatic 12Ps scorecard integration to the memo workflow. Previously, the scorecard evaluator generated detailed scores in `5-scorecard/12Ps-scorecard.

Summary

Added a comprehensive scorecard evaluation system that scores completed investment memos against a structured 12-dimension framework (12Ps: Persona, Pain, Proposition, Problem, Possibility, Positioning, People, Process, Product, Potential, Progress, Plan).

Summary

Began major refactor to reorganize the flat `data/` and `output/` directories into a hierarchical `io/` directory organized by firm and deal. This enables private git submodules for firm-specific data while keeping the orchestrator open-source.

Summary

Completed the firm-scoped IO path resolution system, enabling deals to be stored in `io/{firm}/deals/{deal}/` with automatic fallback to the legacy `data/` and `output/` directories. All agents now pass the `firm` parameter through the workflow.

Entity Disambiguation System Implementation

A memo for Sava, the YC trust-administration startup, confidently reported a $19M Series A led by Balderton — except that round belonged to Sava Technologies, a biosensor spinout. The data was real and well-cited, just about a different company.

Canonical Draft Assembly Tool

Three CLI tools each had their own way of stitching a memo back together, so citation numbers collided and the table of contents went stale. Now there is one assembler, and everything else delegates to it.

Summary

Added explicit "Venture Capital mindset" framing to all memo-writing agent prompts to ensure generated content focuses on opportunity and upside rather than defaulting to Private Equity-style skepticism.

Scorecard Agent & CLI Implementation

Implemented the Scorecard Agent and CLI tool to automatically generate Hypernova Capital's 12-dimension scorecards for emerging manager fund commitment memos. This completes the scorecard system introduced in changelog 2025-11-27_01.

Competitive Extractor & Separated Artifact System

Implemented Phase 2 of the Dataroom Analyzer: the Competitive Extractor. This extracts and synthesizes competitive landscape data from battlecard PDFs and outputs structured analysis as separate, numbered artifact files for better manageability.

Cap Table & Financial Extractors

Added two new extractors to the Dataroom Analyzer: Cap Table Extractor and Financial Extractor. These complete the core Phase 2 extractors for investment dataroom analysis.

Traction Extractor

Added the Traction Extractor to complete Phase 2 extractors (4 of 5). This extractor pulls customer metrics, revenue data, pipeline information, and partnerships from pitch decks and other traction-related documents.

Team Extractor - Phase 2 Complete!

Added the Team Extractor, completing all Phase 2 extractors (5/5). The dataroom analyzer now extracts comprehensive structured data from investment datarooms.

Table of Contents Generator Agent

Added a new TOC Generator agent that automatically creates a Table of Contents with working anchor links for the final investment memo. The TOC includes main sections (h2) and subsections (h3) that function in both HTML and PDF exports.

Phase 3: Data Synthesis & Cross-Reference

Added the Synthesizer module to cross-reference data across all extractors, detect conflicts, identify data gaps, and generate a unified view of company metrics with confidence scores.

Resume Workflow Implementation

Implemented checkpoint-based resume functionality to recover from workflow interruptions without losing progress or re-running expensive API calls. System now detects completed agents from saved artifacts and resumes execution from the last successful checkpoint.

PDF Export Quality & Branding Improvements

Enhanced PDF export quality with proper logo rendering, Unicode symbol support, and GHCP Partners brand configuration. Fixed critical rendering issues that caused logo distortion and citation symbols to display incorrectly in WeasyPrint-generated PDFs.

Tier 2 Anti-Hallucination: Fact-Checker Agent Implementation

Implemented the fact-checker agent to prevent hallucinated metrics and claims in investment memos. This agent verifies all factual claims against research sources, catching fabricated revenue figures, pricing data, customer counts, and other metrics before final memo assembly.

Perplexity Citation Integration: Research-First Architecture

Complete integration of Perplexity Sonar Pro for section-specific research WITH citations as a core part of the memo generation pipeline. This fundamentally changes the architecture from "write then add citations" to "research with citations then polish.

Major Architecture Refactor: Section-by-Section Processing

Complete refactor of the enrichment pipeline to process memo sections individually rather than as a single monolithic document. This eliminates API timeout issues and enables proper citation management with Perplexity Sonar Pro.

Overview

Major architectural improvements to prevent API timeouts through section-by-section processing, plus comprehensive brand expansion with MaC VC assets and SVG logo support.

Overview

This session focused on building and refining a comprehensive export/conversion system for investment memos, enabling professional PDF generation with Hypernova Capital branding.

Multi-Brand Export System

Implemented a comprehensive multi-brand export system that allows managing and exporting memos for multiple VC firm clients from a single installation.

PDF Edge-to-Edge Backgrounds & Brand Config Reorganization

Solved a critical PDF rendering issue where page backgrounds didn't extend to all edges and content lacked proper per-page spacing. Discovered WeasyPrint's `@page background-color` property enables edge-to-edge colored backgrounds while maintaining proper content margins on every…

Obsidian-Style Citation Consolidation for HTML Exports

Implemented automatic citation consolidation in HTML exports to match Obsidian's footnote behavior. When Perplexity AI cites the same source multiple times using `[^2]` throughout the markdown, Pandoc was incorrectly converting each instance into a separate numbered footnote, res…

Week 1 POC Complete

Historical entry — Core Multi-Agent System, Templates & Style Guides, CLI Interface.

Git Commit Message - Week 1 POC Complete

Five specialized agents under a LangGraph supervisor, wired to live web search — the Week 1 proof of concept wrote a real investment memo on Aalo Atomics and scored 7.5 out of 10 against its own validator.