Codify the VC analysis taxonomies the memo synthesis depends on — competitive, market capture, timeline scenarios — and propose the grill-me checkpoint
Three sibling reference skills land under MemoPop's context-v/agent-skills/, each codifying a slice of the analytical structure a venture investor expects to see in an investment memo: how to classify competitors (stage rings × competitor types, with a noisewashing-vs-genuine-threat test), how to size the prize (SAM/SOM/TAM × 8-step penetration grid for revenue and EBITDA), and how to test the path to it (sustain/improve/plateau/reduce scenarios against MoM/YoY growth at the company's actual unit of sale). A companion exploration proposes the grill-me checkpoint — a per-section orchestrator pause where the user, not the model, picks the synthesis frame. All four artifacts also cp'd into the root lossless-agent-skills repo at context-v/skills/, where they sit as untracked files awaiting a separate commit in that submodule.
Why Care?
A MemoPop memo is only as strong as the analytical structure underneath it. Three of the most consequential sections — competitive landscape, market sizing, growth trajectory — were running on conventions the runtime agents had absorbed from training data and prior runs but that no document in MemoPop's tree explicitly stated. That meant every refinement to those sections was negotiated against the model's defaults rather than against a written contract.
These three skills are that contract. They are reference documents — not runtime code, not prompts, not outline YAMLs. Their job is to give humans, runtime agents (competitive_landscape_researcher.py, competitive_landscape_evaluator.py, and the not-yet-built market-capture and timeline-scenario agents), and any future Claude Code session a single shared vocabulary for classifying competitors, sizing markets, and stress-testing growth. When the section drafts disagree with these skills, the skills win — and any disagreement is now a written conversation, not a model-defaults guess.
The grill-me exploration is the architectural turn this implies. The skills make explicit that several defensible synthesis frames exist for each section; choosing between them is firm/partner/deal judgment the model cannot infer. Grill-me proposes a per-section orchestrator checkpoint where the system briefs the user on what it found and asks the user to pick — instead of the model picking silently and producing a frame the analyst then has to argue with.
What's New?
context-v/agent-skills/competitive-analysis/SKILL.md— two orthogonal axes for tagging every competitor named in a memo:Stage rings (concentric circles outward from the target):
early stage(Pre-Seed/Seed/A),early scaleup(B/C),scaleup(D+),mezzanine(pre-IPO, >$2-3B),incumbents(public / massive PE rollups). Each competitor sits on the ring matching its own stage, not the target's.Competitor types (inside-out by directness):
direct(essentially same product/value-prop/customers — should be very few),adjacent(similar product, slightly different value prop, often different ICP),indirect(analogous product, comparable value prop, different framing, different market),noisewashing(incumbents with broad suites who make a lot of noise about a similar offering but aren't a real alternative in the category).A 5-signal test table to separate noisewashing from genuine incumbent threats. Coverage/PR/analyst mentions don't discriminate (both score high); paying users in the specific category, multi-year sustained capex, segment-level earnings reporting, and merit-based buyer selection do. If those bottom rows light up, reclassify off
noisewashingand call out the reclassification explicitly. Azure and Waymo are the anchor examples for "noise that turned out to cover a real threat."
context-v/agent-skills/market-capture-analysis/SKILL.md— answers the first foundational VC question (how big can it get?) via a static if-then grid:Walks revenue and EBITDA across 8 penetration steps (1%, 3%, 5%, 10%, 25%, 35%, 50%, 60%) for each of SAM / SOM / TAM, at the company's existing pricing and business model.
Standard three-tier triad (SAM = serviceable addressable, SOM = serviceable obtainable, TAM = total addressable), with a documented seam to reintroduce
TOMas a distinct fourth tier if the author later defines it.Forces "unit of sale" to be named explicitly (seats, contracts, transactions, GMV, gallons — never a generic "customer"), since it drives every subsequent timeline scenario.
Defines the synthesis discipline: one memo table with 3–5 chosen cells, a named base case the reader can react to, and stated assumptions for pricing/margin/sizing rather than burying them.
context-v/agent-skills/timeline-scenario-analysis/SKILL.md— answers the second foundational VC question (how fast can it get that big?) by operating on the capture grid:Four scenarios per starting growth rate (canonical: 10% MoM):
sustain(what it takes to hold it),improve(what would have to be true for acceleration — often the bull case),plateau(S-curve realism),reduce(decel causes and pace).Sensitivity discipline: small growth-rate variations (8% vs. 10% vs. 12% MoM, plateau-after-N-months scenarios) shown as time-to-reach-base-case-cell, not open-ended charts. The headline output sentence the skill insists on: "10% MoM gets us to a $X revenue cell in Y years."
Calls out the failure modes that hide in real memos: compounding a recent growth spike forever, using YoY when MoM is more honest for early-stage, skipping the plateau scenario entirely (which signals advocacy rather than analysis).
context-v/explorations/Grill-Me-Per-Section-User-Input-Moment.md— exploration doc (status: Draft, generic from day one):Names a new orchestrator checkpoint that fires after a section's research/classification and before the writer's synthesis. The pipeline pauses, MemoPop UI surfaces what was found / what's ambiguous / a short menu of synthesis frames with recommend-when reasoning, and resumes once the user's frame choice + reclassifications + free-text override are returned.
Proposes a
grill_me:block on outline sections (sketch YAML included), so adoption is opt-in per section without a global mode change.Six open design questions called out for follow-up: sync vs. async pause; headless/batch fallback; state persistence so re-runs replay user decisions; whether to reuse the MemoPop native "✨ Curate Best Sources" checkpoint mechanism; how grill-me composes with the existing
competitive_landscape_evaluator.py; and rules-vs-model for ambiguity detection.Adoption sequence has competitive as the first wired section;
team,risks, andrecommendationare likely follow-ons.
How the three skills fit together
┌──────────────────────────────┐
│ Two foundational VC qs │
│ 1. How big can it get? │ ← market-capture-analysis
│ 2. How fast can it get there?│ ← timeline-scenario-analysis
└──────────────────────────────┘
│
▼
┌────────────────────────────────────┐
│ competitive-analysis │
│ (the third side of the triangle: │
│ who else is trying to get there?) │
└────────────────────────────────────┘
│
▼
┌────────────────────────────────────┐
│ All three: same exhaustive-vs- │
│ synthesized discipline. Long │
│ research files, tight memo tables │
│ + diagrams + named base cases. │
└────────────────────────────────────┘
│
▼
┌────────────────────────────────────┐
│ All three: candidate sections for │
│ the grill-me checkpoint │
└────────────────────────────────────┘Each skill explicitly does NOT prescribe runtime behavior or memo table layout — those belong to apps/memopop-orchestrator/src/agents/ and apps/memopop-orchestrator/templates/outlines/. The skills are reference contracts, not implementations.
Promotion to the root lossless-agent-skills repo
All three SKILL.md files were also cp'd into the root submodule at context-v/skills/ (lossless-agent-skills.git, branch main). They sit there as untracked files alongside the existing tree-wide skills (astro-knots, changelog-conventions, context-vigilance, etc.). A separate commit in that submodule is required to make them part of the tree-level skill set; this commit only covers the canonical-home authoring in MemoPop.
The grill-me exploration was not promoted — it lives in context-v/explorations/, which is MemoPop-scoped by convention.
Verification
# In ai-labs/memopop-ai/
ls context-v/agent-skills/ # competitive-analysis, market-capture-analysis, timeline-scenario-analysis
ls context-v/explorations/ | grep Grill-Me # Grill-Me-Per-Section-User-Input-Moment.md
# In lossless-monorepo/ (cp'd copies, untracked)
ls context-v/skills/ | grep -E "competitive-analysis|market-capture|timeline-scenario"Cross-references inside the four documents form a closed wikilink graph ([[competitive-analysis]], [[market-capture-analysis]], [[timeline-scenario-analysis]], [[Grill-Me-Per-Section-User-Input-Moment]]) — every reference resolves to a file that exists in this commit.
What's next
Land the lossless-agent-skills commit for the three cp'd SKILL.md files (separate submodule, separate commit).
Convert the grill-me exploration into a spec: the orchestrator checkpoint event payload shape, the UI checkpoint payload shape, and the
grill_me:outline block schema.Wire a
grill_me:block onto the competitive section of one outline as the first concrete adopter.Decide whether the existing
competitive_landscape_evaluator.pybecomes a pre-grill prep step or stays as a downstream pass.
Related
context-v/agent-skills/competitive-analysis/SKILL.md— the taxonomy itself.context-v/agent-skills/market-capture-analysis/SKILL.md— how big?context-v/agent-skills/timeline-scenario-analysis/SKILL.md— how fast?context-v/explorations/Grill-Me-Per-Section-User-Input-Moment.md— the proposed checkpoint.apps/memopop-orchestrator/src/agents/competitive_landscape_researcher.pyandcompetitive_landscape_evaluator.py— existing runtime consumers of the competitive taxonomy.apps/memopop-orchestrator/CLAUDE.md— the orchestrator's architectural direction (retrieval/generation split, outline-as-section-taxonomy-contract, marker-not-prose-on-missing-data) that these skills compose with.
