Workspace notes
Context-v
Specs, plans, explorations, and habits from across the workspace — the durable thinking that lives next to the code. Convention from lossless-monorepo/context-v.
-
Handoff — source approval shipped, enforcement never run
The whole curation chain is built, tested, and pushed. Nothing has been enforced on a real memo yet, and ImmuneCo turned out to have been quietly hiding 13 sources since July.
-
Streams and a Stream-Index for the Sources Curation UI — A Plan
A recurring publisher like `rockhealthcapital.com/insights/` is a stream, not a citable source — it belongs in `stream-index.md`.
-
In-App Chat Surface for MemoPop Native — A Plan
A Svelte chat drawer for MemoPop Native: a sidecar `/chat/turn` routes each turn to answer, propose, or invoke over the app's own verbs.
-
Sources Curation UI — A Local Tool for Converging a Sources.md
A single-file local tool bound to one `Sources-aggregated.md`: edit, preview via Jina, re-search via SearXNG, save `inputs/Sources.md`.
-
Research Agent Concatenates Multiple Sources Under One Citation ID — And No Validator Catches It
The downstream symptom (orphan `[^N]` markers in exported memos) is a citation-format failure at the very top of the pipeline: `research_enhanced.py` writes multiple sources onto a single line under the same `[^N]:` heading, with no newline separators and frequent ID reuse. Six of nine research files in the Panthalassa-Deck-Series-B v0.0.3 run carry these malformed lines (one section reuses `[^12]` six times). The downstream regex parsers only see the first source per ID and silently drop the rest. The `citation_validator` agent that exists checks claim accuracy, not bibliography format, so the malformation passes through unflagged. The architectural fix is the Source Harvester / Section Writer split documented in CLAUDE.md §'Architectural direction (2026-05)' but not yet built. Three smaller backstops can close the gap before that ships.
-
Section Citations Orphaned When Definitions Live in 1-research/
Writer agents emit `[^N]` references in `2-sections/NN-foo.md` but the actual citation *definitions* live in `1-research/NN-foo-research.md`. The downstream `cli/utils/consolidate_citations.py` only reads `### Citations` blocks inside section files, so every ref whose definition lives in the research file becomes an orphan in the exported memo. On the Panthalassa-Deck-Series-B v0.0.3 export, 17 distinct ref IDs in body but only 8 defs survived — most of the bibliography didn't render. A new `cli/utils/hydrate_section_citations.py` pulls missing defs from 1-research/ into each section file as a pre-step, wired into `recompile_memo.py` so it runs on every assembly.
-
Grill Me: A Per-Section User-Input Moment in MemoPop Runs
A pause-point where MemoPop grills the user — the competitive section's synthesis frame is a judgment the model shouldn't make alone.
-
Human-Curated Source Sets and Per-Firm RAG for Memo Narrative
Keep Perplexity's take as quarantined commentary and route real research through validated harvesters plus a per-firm standing RAG store.
-
Curating Only Valid Sources Across Runs
Downstream curation cannot fix what `citation_enrichment.py` invents upstream — 65 fabricated `example.com` URLs in a single run.
-
Separating Retrieval from Generation in Agent Pipelines
An agent that both searches the web and writes the prose fabricates URLs — 65 `example.com` links in a single memo run.
-
Add People Crawl Command to MemoPop Native
Wire the orchestrator's `extract_team_roster` command into the MemoPop Native UI as a per-investor button — and as a batch action that runs it 5–20 times per memo, once for each co-investor in the round.
-
Where Investor-Firm Rosters Live
When a deal artifact bundle includes the investor's team roster, where does that roster live? Inside the deal folder it duplicates on every co-investor; in a global firms index it loses deal context. Stub for a real exploration.
-
Team and People Metadata Ingestion
Six phases to take any company URL → structured TeamRoster JSON the MemoPop app can render as cards. Each phase ships independently and is verifiable on its own.
-
Crawl for Better Team Structured Output
The orchestrator writes prose about teams but never returns the structured roster the app needs to render cards: names, titles, photo URLs.
-
MemoPop AI — Ideogram OG Image Brief
A house-style Ideogram prefix and suffix any scene description plugs into, so splash, changelog, and context-v imagery stay one family.
-
Upgrade the MemoPop AI splash with three-mode theming, context-v rollup, peer-aware discovery, and Pagefind
Brings the pre-convention memopop-site up to the splash bar: three-mode theming, a context-v rollup, peer-dir discovery, and Pagefind.
-
Tasks
-
Character Cast for Live Agent Indication
Personify the orchestrator's agents as a cast of named, faced characters. A row of portraits sits above the run panel; the ones currently doing work glow, with a live caption underneath describing what each is up to right now.
-
Migrate `studies/open-specs-and-standards/` into its own pseudo-monorepo
-
Issues After First Run
-
Moving an Agent Orchestrator to an API
The orchestrator is a Python CLI today. To plug it into memopop-native, we need an HTTP-shaped surface. Three options, ranked by effort and time-to-value.
-
An Onboarding User Journey for memopop-native
Experiences win on Onboarding. This spec outlines a user journey for onboarding users to memopop-native.
-
Introducing a Content Density Mode System
A system-level content mode toggle (redundant vs concise) that alters the behavior of the writer, table generator, and quality agents to match different firm preferences for information density and repetition.
-
Introducing a Diagram Generator Agent
Add a diagram_generator.py agent that identifies opportunities to create visual diagrams explaining complex business concepts, starting with TAM/SAM/SOM market sizing and expanding to common finance and consulting visuals.
-
PDF Parser Agent Specification
A small specification for an agent and script to parse PDFs and convert them to markdown with properly formatted citations.
-
Preferred Format for Changelog
-
Multi-Agent Orchestration for Investment Memo Generation
An exploration into using AI supervisors and specialized agents to generate high-quality content and documents.
-
Portfolio Listing Agent and Current Portfolio Section
Design notes for the portfolio_listing_agent that builds a Current Portfolio subsection and structured JSON for LP-commit emerging manager fund memos.
-
Frontloaded Source-Approval Loop — enforce the set, then build the surface that fills it
Ships the membership predicate before the approval UI — a curation surface whose output nothing enforces has no observable failure mode.
-
agent skills/setup new firm/SKILL
End-to-end procedure for onboarding a new VC firm into the memopop investment-memo orchestrator. Five phases — (1) brand acquisition via Firecrawl with analyst-override on the primary-color heuristic, (2) firm-directory scaffolding under io/<firm>/ with the canonical configs/templates/assets/deals layout and the strict brand-config YAML schema, (3) investment-framework outline selection (typically forking an existing outline like alpha-partners-7-Cs and customizing — section reordering, preambles, preferred-source swaps, stage-aware fallbacks), (4) first deal setup with deck-input handling (DocSend capture via cli/capture_docsend.py, ImageMagick screenshot stitching for NDA-gated decks, deal-config JSON, codified Sources.md), and (5) optional private-repo split via gh CLI with submodule re-add for confidential firm data. Use whenever the user says "I have a new client/firm/VC," "set up <firm name>," "add <firm> to memopop," "we need brand configs for <firm>," or pastes a VC firm's URL with implicit intent to generate memos for them. Encodes lessons from the alpha-jwc onboarding on 2026-06-07 — don't trust Firecrawl's primary-color field blindly, verify against the logo palette; the deck analyst will extract DocSend watermarks as the company name if you feed it watermarked screenshots; agents leak firm-geography context into company-analysis prose (Alpha JWC = Indonesia VC → Portland-OR company memo gained Indonesia/rupiah risks); citation-enrichment fabricates example.com URLs even in codified-source mode — codified Sources.md only constrains the upstream researcher, not the downstream enricher. Cross-references [[crawl-fetch-ingest]] for portfolio/team data, [[sources-md-curation]] for the Sources.md file mechanics, and the open issues in context-v/issue-resolution/ ([[Limiting-or-Omitting-Investor-Judgement]], [[Competitive-Research-Generated-But-Not-In-Prose]], [[Including-Comparable-Exits-Valuations-IPOs]]) for known failure modes the new firm's first run will hit.