HC Protocol · Larry Pipeline · Output Specification

Daily Brief Output PRD

Larry Pipeline v1.0 — Prescriptive Output Requirements

Version 1.0
Date 2026-03-26
Author Jason MacDonald
Derived from Brief #57 (Claude.ai) vs Brief #58-B (Claude Code)
HC Token JMD-FORGE-2026
Table of Contents
  1. Diagnosis — What Version B Gets Wrong
  2. Scoring Engine Requirements
  3. Signal Card Anatomy (Required)
  4. Seed Quality Requirements
  5. SVG Diagram Requirements
  6. The Thread — Synthesis Section
  7. Registry Update Requirements
  8. HTML/CSS Standards
  9. Working Links — Non-Negotiable
  10. Pre-Publish Quality Gate Checklist

01 Diagnosis — What Version B Gets Wrong

Version B was produced by the Larry pipeline (Claude Code automated). Version A was produced manually via Claude.ai. The comparison reveals that Version B's failure mode is not signal selection (it ingested 28 signals vs. 10) — it's output depth. Version B is a report that tells Jason what happened. Version A is an execution system that tells Jason what to do and provides the tools to do it. These are different products.

DimensionVersion B (Fail)Version A / Target (Pass)
Signal cards3–4 sentence blurbs. No structure. No columns.3-column anatomy: What Happened / Why It Matters / Action. Each column 80–120 words.
LinksMany broken or missing. Source links not verified.Every source link verified live before publish. Card footer has distinct source buttons.
SeedsNot present. "Action: Add X to Y" is not a seed.Every Track A and Track B signal has a full pasteable Claude session seed with full context, task, win/loss conditions.
SVG diagramsNot present.Every Track A and B signal has an inline SVG diagram visualizing the key insight, contrast, or arc.
Win/Loss conditionsNot present.Every surfaced signal has explicit falsifiable win condition AND loss condition with redirect.
Order chainNot present.Every signal has a 3-node 2°/3°/4° order chain showing compound effects.
Synthesis section2-sentence paragraph. No depth.Full "The Thread" section: pull quote, vision nodes grid (3-column), 3-paragraph synthesis, world arc (2×2 grid), future unlocks (4 items).
Registry updatesBullet list of node names. Not machine-readable.Full JSON node objects with id, label, category, status, briefs[], connections[], sources[], description.
Timing pillsNot present.Every surfaced signal has a red timing pill: "⏱ [specific urgency reason]. Act [timeframe]."
Action specificity"Add X to Y" — no context, no commands, no session.Every Track B signal has numbered build steps with exact commands where applicable.
Scoring visibilityScore shown inline (14/20). No rubric explanation.Scores collapsed behind details element. Full scoring table with all 10 signals, U/N/A/F breakdown, visible on demand.
Series arcSingle "Prev:" link.Full series arc bar with clickable links to all prior briefs, current brief highlighted.
Theme togglePresent ✓Present ✓
Registry barAbsentPurple registry bar with node update tags and link to knowledge-registry.
Root cause: Version B treats each signal as a news item to summarize. Version A treats each signal as a strategic asset to deploy. The PRD below specifies exactly what "deploy" means structurally for every signal type.

02 Scoring Engine Requirements

2.1 Rubric

Score every signal on four dimensions, each 1–5. Total = /20. Threshold to surface = ≥16/20.

LetterDimensionScoring guidance
U — UrgencyHow time-sensitive is the action this unlocks?5 = act today or lose the window. 3 = act this week. 1 = evergreen, no urgency.
N — Narrative FitHow directly does this stack on an established registry node or active thesis?5 = confirms/extends an established node with new evidence. 3 = loosely related. 1 = no narrative fit.
A — AsymmetryDoes surfacing this unlock disproportionate return vs. effort?5 = small action unlocks major compound. 3 = reasonable ROI. 1 = linear effort/return.
F — FalsifiabilityIs there a measurable win/loss condition that can be evaluated within 30 days?5 = binary result within 7 days. 3 = result visible within 30 days. 1 = no measurable outcome.

2.2 Routing rules

Scoring calibration rules


03 Signal Card Anatomy (Required)

Every Track A and Track B signal requires a full signal card. Track C signals use the condensed list format only. The following anatomy is mandatory — no shortcuts.

3.1 Card sections in order

A. Ribbon bar

Required
Colored left-border ribbon showing what this signal stacks on. Format: ↑ STACKS ON: [node-id] · [node-id] followed by 1-sentence explanation of the stacking relationship. Color: green for Track A, blue for Track B, red for Emergency.

B. Card header

Required
Two-column grid: signal strength box (left, 50px) + metadata + headline (right).

C. 3-column body

Required — 3 columns, responsive to 1 column on mobile
Column 1 — What Happened: Factual summary of the signal. 80–120 words. No editorializing. This is the source content, accurately represented.

Column 2 — Why It Matters (strategic frame): How this connects to the active thesis, registry node, or MasteryOS positioning. 80–120 words. One bolded key insight per column.

Column 3 — The Action / The Angle: For Track A: the publishing angle, hook, and target. For Track B: what to build and why now. 80–120 words. Must be specific — not "consider doing X" but "publish X to Y via NowPage" or "update Z file with these changes."

D. SVG diagram

Required for every Track A and Track B signal
Inline SVG, viewBox="0 0 960 [height]", width="100%". Must visualize the core insight — a contrast, an arc, a spectrum, a flow, or a decision tree. Never decorative. The diagram must add information not already in the text columns.

E. Order chain (2°/3°/4° effects)

Required
3-node horizontal chain. Each node contains: Nodes are connected visually by → arrow character. Overflow-x scroll on mobile.

F. Timing pill

Required
Red-tinted pill with ⏱ prefix. Explains specifically WHY this must be acted on today or this week. Must name the closing condition (thread is live, price window, JV call is upcoming, etc.). Never generic ("act soon"). Format: ⏱ [Specific reason]. [Specific action] [Specific timeframe].

G. Win/Loss conditions

Required — Falsifiability gate
2-column grid: Win (green) | Loss (red).

H. Seed row

Required for every Track A and Track B signal
Purple-tinted row at card bottom with seed button. See Section 4 for seed content requirements.

I. Card footer

Required
Source link button(s) — each a distinct clickable element with external link icon. Tag pills for registry nodes. Format: class="src-link" buttons + class="tag-pill" spans.

04 Seed Quality Requirements

A seed is a complete, pasteable context block for starting a new Claude chat session. It is not a summary. It is not an action item. It must be copy-pasteable directly into a new Claude chat and produce useful work without any additional context from Jason.

4.1 Seed content structure (mandatory fields)

[CONTEXT BLOCK — always first]
You are helping Jason MacDonald, founder of MasteryMade. HC_TOKEN: JMD-FORGE-2026
STACK: [current Forge stack summary — ~3 sentences]
ACTIVE JVs: [current JV pipeline]
BRAND: "Builder. Operator. Architect." | "Dominia Facta. Build what compounds."
REGISTRY: https://jasondmacdonald.com/knowledge-registry

[TRACK + SIGNAL]
TRACK [A/B] — [Signal name] / [Strategic framing] [Score/20]

[SERIES CONTEXT]
SERIES: Stacks on [node-id (status, N briefs)]. [1-2 sentences on what specifically this new signal adds to the existing node.]

[SIGNAL DETAIL]
SIGNAL: [Full factual description of what happened. Include: source, key data points, what was said/done/published, any specific numbers.] 
SOURCE: [URL]

[STRATEGIC FRAME]
[HOOK]: [The specific first line of the article/asset — what opens it]
[ANGLE]: [The argument structure — why this specific signal matters in this specific way for this specific thesis]

[TRACK A: PUBLISHING TARGET]
PUBLISH: [Specific slug] via NowPage ([standalone/companion])
WIN: [Specific measurable outcome — pts within timeframe AND inbound within timeframe]
LOSS: [What failure looks like → specific redirect]

OR

[TRACK B: BUILD TARGET]
BUILD: [What to build, specific file/config/command targets]
WIN: [Specific measurable outcome — what's done, what's verified, timeframe]
LOSS: [Failure condition → specific redirect]

[TASK LINE — always last]
Task: [1–2 sentence specific task instruction]. Return [specific deliverable].

4.2 Seed quality gates

4.3 Seed button implementation

The seed is stored as a JavaScript string in a const seeds = {} object keyed by signal identifier. The seed button calls a seed(key) function that writes the seed string to clipboard and shows a toast. The button must:


05 SVG Diagram Requirements

5.1 Permitted diagram types

TypeWhen to useExample from series
Contrast (vs.)Signal proves X beats Y with evidenceGeneric AI vs. Expert Factory (Walmart 3×)
Arc / trajectorySignal is the Nth point in a multi-brief arc5-signal cost-collapse arc (#49→#55)
Spectrum / scaleSignal positions something on a dimensionPlatform publishing collapse spectrum (#54)
Failure flowSignal documents a failure modeLiteLLM supply chain attack flow (#56)
Methodology comparisonSignal proves a methodology at a different scalePersonal encyclopedia → Expert Factory → HC Protocol (#57)
Inflection / failure arcSignal documents where a good approach turns badVibe coding inflection arc (#57)

5.2 Technical requirements

5.3 What SVGs must NOT be


06 The Thread — Synthesis Section

The Thread is the most important section of the brief. It is where the brief stops being a list of signals and becomes a strategic document. Version B's synthesis was 2 sentences. The target is a full section with five subsections.

6.1 Pull quote

Required — opens The Thread section
Cormorant Garamond italic, ~2rem, gold color. 2–3 sentences maximum. Must: (1) name what today's brief proved, (2) connect it to the series arc, (3) end with a forward-pointing implication. This is Jason's voice — stoic, direct, no hedging.

6.2 Vision nodes grid (3-column)

Required — one cell per surfaced signal
3-column grid (responsive to 1 on mobile). Each cell:

6.3 Synthesis body (3 paragraphs)

Required

6.4 World arc (2×2 grid)

Required
Four cells across two time horizons: Each cell: horizon label + title (Cormorant bold) + 60–80 words of substance. Bold the key implication per cell.

6.5 Future unlocks (4 items)

Required
4 action items with time horizons: Today (orange) / This week (gold) / Before next JV call or milestone (green) / The arc (purple). Each: Emergency items (red left border) appear before Today items when present.

07 Registry Update Requirements

The knowledge registry at jasondmacdonald.com/knowledge-registry must be updated after every brief. The update is mandatory, not optional.

7.1 What triggers a node update

7.2 Node JSON structure (required fields)

{
  "id": "kebab-case-unique-id",
  "label": "Human Readable Label",
  "category": "platform|masteryos|forge|nowpage|signal-engine",
  "status": "established|growing|seed",
  "brief_first": "#47",
  "briefs": ["#47", "#52", "#57"],
  "description": "Full paragraph description. Include: what this node represents, key evidence signals, current strategic relevance. 2–4 sentences minimum.",
  "connections": ["other-node-id", "another-node-id"],
  "sources": [
    {"label": "Brief #57 — context note", "url": "https://jasondmacdonald.com/daily-brief-2026-03-26"},
    {"label": "Source article title", "url": "https://verified-live-url.com/article"}
  ]
}

7.3 Source URL verification (critical)

Every URL in every node's sources array must be verified live before the registry is published. A broken source link in the registry is worse than no source link. Use web_fetch or a HEAD request to verify each URL returns 200 before including it. If a URL cannot be verified, use the brief URL as the source and note the original URL in the description field only.

7.4 Registry bar in the brief

The purple registry bar above the intake bar must show all node changes for that brief. Format per tag:


08 HTML/CSS Standards

8.1 Type scale

ElementFontSizeWeight
Brief headline H1Cormorant Garamondclamp(1.8rem, 3vw, 2.8rem)300
Section/card headlinesCormorant Garamond1.25rem–1.4rem600
Synthesis pull quoteCormorant Garamond italicclamp(1.35rem, 2.5vw, 2rem)300
Body copyIBM Plex Sans0.85rem–0.95rem300–400
Labels, chips, tagsIBM Plex Mono0.5rem–0.68rem400–500
Code blocksIBM Plex Mono0.7rem–0.8rem400
SVG textIBM Plex Mono6.5px–11px at viewBox400–600

8.2 Responsive scaling (required)

html { font-size: clamp(14px, 0.8vw + 11px, 17px); }

This single rule makes all rem-based sizes fluid. Do not set fixed font sizes on body or paragraphs — use rem units relative to this fluid base.

8.3 Canvas DPR fix (if using canvas graphs)

function setCanvasSize(canvas) {
  const dpr = window.devicePixelRatio || 1;
  const rect = canvas.parentElement.getBoundingClientRect();
  cssW = rect.width;
  cssH = canvas.offsetHeight || 520;
  canvas.width = Math.floor(cssW * dpr);
  canvas.height = Math.floor(cssH * dpr);
  canvas.style.width = cssW + 'px';
  canvas.style.height = cssH + 'px';
}

// In draw():
ctx.scale(dpr, dpr); // FIRST thing after clearRect — all coords in CSS pixels

Hit detection must use getBoundingClientRect() client coordinates (CSS pixels), not buffer pixel coordinates.

8.4 Design tokens (required, CSS custom properties)

:root, [data-theme="dark"] {
  --red: #C0272D;   --gold: #C8A96E;   --green: #3DAA6B;
  --blue: #4A9EDB;  --orange: #E8813A; --purple: #9B6FD4;
  --bg: #0C0C0C;    --s1: #111;        --s2: #161616;   --s3: #1c1c1c;
  --border: #222;   --b2: #2a2a2a;
  --text: #EAE4DB;  --dim: #888079;    --muted: #444;
  --hbg: rgba(12,12,12,.97);
}
[data-theme="light"] {
  --bg: #F4F1EC;    --s1: #FFF;        --s2: #EDE9E2;   --s3: #E4DFD7;
  --border: #D5D0C8; --b2: #C5BFB5;
  --text: #1A1410;  --dim: #5C5650;    --muted: #9A9590;
  --hbg: rgba(244,241,236,.97);
}

8.5 Required page sections in order

  1. <script id="registry-json"> — machine-readable JSON at top of body
  2. Theme toggle + seed scripts (inline JS)
  3. Sticky header (class="hdr") with logo, prev link, PRD version chip, brief number chip
  4. Emergency alert banner (if Track B Emergency) — pinned below header, full width
  5. Meta thesis bar — today's thesis in gold italic
  6. Purple registry bar — node updates for this brief
  7. Intake bar — date, summary phrase, signal counts, collapsible score table
  8. Collapsible series arc bar
  9. Main content: Track B Emergency (if any) → Track B → Track A → Track C
  10. The Thread synthesis section
  11. Footer with brief number, PRD version, prev link, registry link

Every link in the published brief must be verified before publication. This is the single most basic quality gate and Version B failed it.

9.1 Link verification protocol

Before the brief is published via NowPage, every URL in the brief must pass one of:

If a URL cannot be verified:

9.2 HN links

HN thread URLs follow the pattern https://news.ycombinator.com/item?id=[ID]. The ID is not always in the signal input. If the direct HN thread URL is not available, use https://news.ycombinator.com as the source and note "HN [score]pts" in the badge only — do not fabricate a thread URL.


10 Pre-Publish Quality Gate Checklist

Before calling publish_to_nowpage, verify every item in this list. If any item fails, fix it before publishing.

Signal processing

Signal cards

Seeds

Links

Synthesis section

Registry

HTML/CSS


Summary — The One Principle

Version B tells Jason what happened. The target brief tells Jason what to do and gives him the tool to do it in one click. Every structural requirement in this PRD serves that single principle.

Larry Brief PRD v1.0 · Jason MacDonald · 2026-03-26 · HC Token: JMD-FORGE-2026