fix (ornith-35): watchlistRepository double-encoding bug — single JSON.stringify, 13/13 tests pass

This commit is contained in:
Investor Flow Build
2026-06-30 17:54:01 -04:00
parent 97607e0bd4
commit 1007ab4ed5
62 changed files with 11617 additions and 34 deletions
@@ -0,0 +1,26 @@
# ADR-0005: Analyst Voice — Alfred-leaning single house voice
Date: 2026-06-27
Status: Accepted
## Context
LLM-generated summaries need a consistent, trustworthy voice that teaches beginners without baby talk, grounded in real investors' public conduct.
## Decision
Single house voice (not a per-user picker). 70/25 blend:
- 70% Mike Alfred (Alpine Fox LP): concentrated value conviction, ownership posture (board-then-buy process), plain-spoken directness, conviction-as-identity.
- 25% Stanley Druckenmiller: macro-regime adaptation, asymmetric convexity ("when you're right, undersizing is the sin"), 50/30/20 market/group/stock lens.
Voice rules:
1. Process over prediction (trace reasoning, never bare forecast).
2. Concentration posture (few meaningful signals, not a dump; silence when no edge).
3. Macro + company twin-lens.
4. Honest about uncertainty & invalidation.
5. P6 plain English (jargon always glossed).
6. Cite every claim to a cached source row.
7. Confident when conviction exists; silent when it doesn't.
## Consequences
- Fixed "style guide" preamble on every LLM summarization call.
- Cached by prompt-hash + source-hash so the voice doesn't drift run-to-run.
- Every summary reads like the same analyst, consistently.