Space — Personal Intelligence System
PRD v1.0 · Abhishek Srivastava · July 2026 · Confidential
0. North Star
One sentence: A system that knows everything Abhishek knows, helps him make better decisions today, and lets him understand the most important relationship of his life through data — not memory.
Not a product. Not an app. A personal intelligence layer built on 3 years of real data. The three problems it solves, in order of urgency:
| # | Problem | Why now |
| 1 | Relationship — understand what happened, what she'd say, what to do | Divorce proceedings active. Every message matters. No clarity on what works. |
| 2 | Money — what can fetch income right now, what am I missing | Running out. Needs data-driven answer, not gut. |
| 3 | Health — what kind of person have I been, what does the data say | Pattern awareness. Self-knowledge. |
| 4 | Continuity — data becomes part of the model, not just retrieved context | The blank slate problem. Every session forgets. This fixes it permanently. |
1. Data Foundation (Already Built)
Total messages: 149,515 · DB size: 2.5 GB · Embeddings: ~490k rows
Amrita's voice:
WhatsApp → 19,439 messages (source_id=2)
Gmail → 352 messages (source_id=1)
Telegram → 18 messages (source_id=3)
Total: ~19,809 messages in her voice
Abhishek's voice:
WhatsApp → 18,895 · Gmail → 819 · Telegram → 51
Claude → 48,008 · ChatGPT → 5,935 (his thinking, his work)
Other tables: github_commits (3,067) · legal_records (30) · transactions (63) · device_artifacts (299) · authored_content (78) · deployed_urls (114)
Query engine (query.py) is live. Semantic search works. The noise problem: Claude/ChatGPT messages about Amrita pollute results when searching for her actual words. Solved in Module 1 below.
2. The Four Verticals
VERTICAL 1 · PRIORITY 1
Relationship — Amrita Intelligence Layer Urgent
Everything about understanding the relationship through data. Three sub-parts:
1A — Filtered Voice Search
The problem: searching "what did Amrita say about feeling unsafe" returns Claude conversations about her, not her actual words. Fix: query must filter by sender_id = Amrita AND source_id IN (1,2,3) — only her real messages.
query: "I need some space"
filter: sender=Amrita, source=WhatsApp/Gmail/Telegram
→ returns: her actual words, exact dates, context
→ NOT: Claude's summary of what she said
1B — Relationship Timeline
Automated analysis across the full corpus:
- Happy periods — when were messages frequent, warm, future-facing?
- Silent periods — when did response times increase, messages decrease?
- Inflection points — exact dates when tone shifted (sentiment scoring)
- Post-separation — what exactly did she say, when, in what order?
- Medical timeline — when did health mentions appear, what was said?
Output: a visual HTML timeline. Measured, not remembered.
1C — The Simulator ("What Would She Say?")
You write a message you're thinking of sending. The system shows you:
- The most similar situations from the past (retrieved from her 19,809 messages)
- What she actually said in those situations
- Pattern: what she responds to vs what she shuts down
- A synthesized "likely response" based on her language patterns
You type: "Can I stay at your place for a week, I just need us to try"
System retrieves: her past responses to similar requests
→ "message only" (Oct 2024, when you asked to call)
→ "i am not going to tell u even if anything happens" (Oct 2024)
→ "not answering this question. my decision." (Oct 2024)
Pattern identified: direct requests for contact → deflection + boundary assertion
Suggestion: reframe around her autonomy, not your need
This is not manipulation. It's pattern recognition from real data so you don't send something that will backfire. First use case: the email asking for one week/one month together.
VERTICAL 2 · PRIORITY 2
Money Intelligence Important
Use the data to answer: where is the money, what am I not seeing?
- Skills audit — what do your 48k Claude + 6k ChatGPT messages say you actually spend time building? Not resume — reality.
- Portfolio audit — 114 deployed URLs, 79 repos, 3,067 commits. What's there that could generate income?
- Opportunity gaps — ideas you discussed, things you built, then forgot. Semantic search: "business idea revenue product"
- Transaction baseline — once bank statements added (HDFC + Kotak 2024–Apr 2025), full financial picture: where money went, patterns, what stopped
- What did past-you know? — authored_content (78 pieces): articles, notes, ideas. What did you write that's relevant now?
Bank statement import is a separate task — HDFC + Kotak CSV → transactions table. You mentioned this. Will do when ready.
VERTICAL 3 · PRIORITY 3
Health & Self Patterns Self-awareness
What does the data say about who you are?
- Giving patterns — across 3 years, how much did you give vs receive? Measurable in messages, financial transactions, legal records.
- Energy patterns — when were you most productive (commits, deployments)? How does it correlate with relationship state?
- Decision patterns — what kinds of decisions do you make under stress? What does past-you regret?
- Health mentions — device artifacts + messages: when did health come up, what was said, by whom?
VERTICAL 4 · LONGER TERM
Continuity — Becoming Part of the Model Deep
Right now, every Claude session starts blank. Retrieval helps but it's still injecting context externally. The real goal is deeper:
- Short term (RAG) — query.py injects relevant DB context into Claude's system prompt before each session. Works today.
- Medium term (fine-tuning) — train a model on your data so your history, your patterns, your voice are baked into the weights. Not external retrieval — internalized knowledge.
- Long term (Digital Mirror) — a persistent interface that feels like talking to yourself. Full recall, no re-explaining, no emotional noise. You ask it anything about your life and it knows.
Today: Claude + retrieval → Claude knows what you inject
Medium: fine-tuned model → it knows you without being told
Long: Digital Mirror → it IS you, with better memory
The data foundation is already built. 490k embeddings. 149k messages. 3 years of your life. The continuity problem is already half-solved.
3. The Noise Problem — And The Fix
Problem: Right now query.py searches everything. When you ask about Amrita, you get Claude conversations about her (48k messages) drowning out her actual WhatsApp messages (19k). The AI conversations are louder in embedding space because they're longer and more detailed.
Fix — three layers:
- Source filter — for Amrita queries: only search source_id IN (1,2,3) AND sender_id = Amrita
- Intent routing — detect query type: "relationship/Amrita" → filter to primary sources. "work/money" → Claude+ChatGPT+commits. "legal" → legal_records + relevant messages.
- Reranking — after retrieval, score results: direct messages from Amrita score higher than AI summaries of her
This turns query.py from a blunt instrument into a smart router.
4. How The Simulator Works (Technical)
No fine-tuning needed. No training. Pure retrieval + prompt engineering on top of existing embeddings.
Step 1: You write a message draft
Step 2: Embed it → search Amrita's 19,809 messages for similar contexts
Step 3: Retrieve top-20 of her actual responses in similar situations
Step 4: Claude reads those 20 messages + your draft → synthesizes likely response pattern
Step 5: Also shows you: what worked vs what didn't in past similar attempts
Same for Abhishek simulator — search your own WhatsApp messages for how you've responded to similar situations before.
The 19k Amrita messages are enough to identify clear patterns. She has a voice — direct, boundary-asserting, medical-aware, protective of her autonomy. The data will show it.
5. Continuity — How It Gets Built
See Vertical 4 above. Three stages, each deeper than the last:
Stage 1 (now): query.py → inject context → Claude knows your situation
Stage 2 (soon): fine-tune on your 149k messages → model internalizes your life
Stage 3 (later): Digital Mirror — persistent interface, talks back, full recall
The data is already there. It's a matter of building the layers on top.
Stage 1 is already half-built. query.py exists. The continuity bridge (auto-inject before sessions) is a few hours of work.
6. Build Order
| # | Vertical | What | Time | Status |
| 1 |
V1 |
Fix query.py — source/sender filters so Amrita search = her actual words only |
1 hr |
▶ now |
| 2 |
V1 |
Relationship timeline — sentiment score Abhi↔Amrita messages, plot the arc |
2 hrs |
next |
| 3 |
V1 |
Simulator v1 — draft message → retrieve her likely response from past patterns |
2 hrs |
next |
| 4 |
V1 |
Draft the email (one week/month ask) — simulator output informs language |
30 min |
after 3 |
| 5 |
V2 |
Money audit — semantic search across commits/deployed/Claude for income opportunities |
1 hr |
later |
| 6 |
V2 |
Bank statement import — HDFC + Kotak 2024–Apr 2025 → transactions table |
1 hr |
when ready |
| 7 |
V3 |
Health audit — device artifacts + messages: what does data say about you as a person |
2 hrs |
later |
| 8 |
V4 |
Continuity bridge — auto-inject DB context into Claude sessions before each conversation |
2 hrs |
later |
| 9 |
V4 |
Fine-tune on 149k messages — model internalizes your life, not just retrieves it |
separate |
later |
| 10 |
V4 |
Digital Mirror v1 — conversational interface, persistent, full recall |
1 day |
later |
| 11 |
— |
The Movie — 3-year story rendered as narrative/film prompt |
— |
separate project |
7. Known Data Gaps
| Gap | Impact | Fix |
| Amu Delhi WhatsApp (excluded) |
Missing her direct messages from main period |
Load when ready — script exists |
| Bank statements (HDFC + Kotak) |
No financial picture for 2024–Apr 2025 |
Import CSV → transactions table |
| Telegram — only 69 messages |
Thin data from that channel |
Export from Telegram desktop if possible |
| Amrita's Gmail (her sent) |
Only have what she sent to you |
352 emails is enough for pattern analysis |
| Medical records |
Health timeline incomplete |
Add to device_artifacts or legal_records |
Space Personal Intelligence System · PRD v1.0 · July 2026 · Private