TEST_FAMILY_CONTEXT.md
Purpose: Staging environment dummy data for Icarus development and testing
Environment: ENV=staging
DO NOT USE IN PRODUCTION
The Miller Family
Location: Madison, WI (America/Chicago timezone)
Household:
| Name | Role | Details |
|---|---|---|
| John Miller | Father | Works in IT at local software company |
| Sarah Miller | Mother | Elementary school teacher (3rd grade) |
| Leo Miller | Son | Age 9, 4th grade, soccer player |
| Mia Miller | Daughter | Age 6, 1st grade, ballet dancer |
| Buster | Dog | Golden retriever, 4 years old |
Calendar
School: Lincoln Elementary School (Leo) / Washington Elementary (Mia)
District: Madison Metropolitan School District
Key Dates:
- Spring break: March 24-28, 2026
- Last day: June 6, 2026
- First day (next year): September 2, 2026
Activities:
- Leo: Soccer (Tues/Thurs 4:30 PM @ Westside Park), Chess club (Wednesdays 3:30 PM)
- Mia: Ballet (Mon/Wed 4:00 PM @ Madison Dance Academy), Swim lessons (Sat 10:00 AM @ YMCA)
Maintenance Items
| Item | Last Service | Next Due | Frequency |
|---|---|---|---|
| Honda Civic (2019) | Jan 15, 2026 | Apr 15, 2026 | 3 months / 5,000 mi |
| Buster vet check | Feb 20, 2026 | Aug 20, 2026 | 6 months |
| HVAC filter | Mar 1, 2026 | Jun 1, 2026 | 3 months |
| Water softener salt | Feb 15, 2026 | Apr 30, 2026 | As needed |
Test Documents
Sample Newsletter (Lincoln Elementary — March 2026)
Subject: March Newsletter — Lincoln Elementary
From: principal@lincoln.madison.k12.wi.us
Dear Lincoln Families,
Mark your calendars:
• March 14: Parent-teacher conferences (half day, dismissal at 11:30 AM)
• March 24-28: Spring break — NO SCHOOL
• April 4: Spring carnival (Saturday 10 AM - 2 PM)
Reminder: Friday, March 21 is a FULL DAY (not half-day as previously
printed in the August calendar).
Best,
Principal Henderson
Sample Invoice (Madison Dance Academy)
Invoice #MDA-2026-0342
Date: February 28, 2026
Student: Mia Miller
Program: Spring Ballet Session (March-May)
Tuition: $285.00
Payment due: March 15, 2026
Sample Receipt (Westside Veterinary Clinic)
Receipt #4582
Date: February 20, 2026
Patient: Buster Miller
Service: Annual wellness exam + rabies booster
Next visit recommended: August 20, 2026
Total: $189.00
Query Test Cases
| Query | Expected Pattern | Expected Answer | Source |
|---|---|---|---|
| "Is Friday a half-day?" | Logistical | "No — full day per March 14 newsletter" | Newsletter (March 14) |
| "When is spring break?" | Logistical | "March 24-28, 2026" | Newsletter |
| "What size is our HVAC filter?" | Entity | "16x25x4 (changed March 1)" | Maintenance record |
| "When was Buster's last vet visit?" | Entity | "February 20, 2026" | Receipt #4582 |
| "What was the name of the roofer we used?" | Historical | "Madison Roofing Co. (August 2024)" | Invoice archive |
| "What time is Leo's soccer practice?" | Entity | "Tuesdays and Thursdays at 4:30 PM" | Activity schedule |
Environment Configuration
# .env.staging
ENV=staging
DB_PATH=./data/staging.db
FAMILY_CONTEXT=./TEST_FAMILY_CONTEXT.md
OLLAMA_HOST=http://matt-pc.tail864e81.ts.net:11434
MODEL_PRIMARY=phi4:14b
MODEL_FALLBACK=qwen2.5-coder:7b
# Staging Observer Bot (Silent Mode - Week 0.5)
STAGING_OBSERVER_BOT_TOKEN=8442671054:AAGoCQomLHAXbr09r5zPD2vI2ZwaeTH2BT8
STAGING_OBSERVER_GROUP_ID=-1002489250746
STAGING_OBSERVER_MODE=SILENT
Week 0.5 Silent Observer Protocol
Purpose: Establish baseline conversation patterns before enabling AI responses
Group: Family Logistics (Staging)
Bot: @IcarusStagingBot
Duration: 7 days minimum (starting 2026-04-30)
Configuration
| Setting | Value |
|---|---|
| Mode | SILENT (log only, no speaking) |
| Privacy | OFF (bot sees all messages) |
| Admin | Required for full access |
| Data Store | observer_messages table |
Bot Commands
| Command | Purpose | Response |
|---|---|---|
/status |
View observation stats | ✅ Active (stats only) |
/shadow_mode |
Preview what bot would say | 🚫 Disabled until Week 1 |
/tripwire_stats |
View trigger patterns | 🚫 Disabled until Week 1 |
Data Collection
All messages in the staging group are logged:
- Text messages (content + metadata)
- Photos (file_id + caption)
- Documents (file_id + type + caption)
- Reply chains (parent message_id)
- Sender info (anonymized in reports)
Weekly Schedule
| Week | Phase | Bot Behavior |
|---|---|---|
| 0.5 | Baseline | SILENT - Log only, build pattern dataset |
| 1 | Shadow | Log + shadow responses, no public replies |
| 2 | Tripwire | Respond only to configured triggers |
| 3+ | Full | Natural response with tripwire safeguards |
Success Criteria
- ✅ Bot responds to
/statusin group chat - ✅ Messages logged to
observer_messagestable - ✅ No Speak messages generated (silent mode verified)
- ✅ 7+ days of conversation data collected
- ✅ Pattern analysis ready for Week 1 shadow mode
Security Notes
- NEVER connect staging bot to production database
- Token stored in
.env.staging(not committed) - Group is isolated from production family group
- All data is test data (Miller family, not Hoffmann)
# .env.prod
ENV=prod
DB_PATH=./data/prod.db
FAMILY_CONTEXT=./family_context.yaml
OLLAMA_HOST=http://matt-pc.tail864e81.ts.net:11434
MODEL_PRIMARY=phi4:14b
MODEL_FALLBACK=qwen2.5-coder:7b
Notes for Socrates
- All test data uses Miller family names/locations
- Staging DB should be seeded with test documents on first run
- Document ingestion pipeline should process TEST_FAMILY_CONTEXT.md as if it were real family data
- Query responses should reference "Miller" family, not Hoffmann
- No real PII (addresses, phone numbers, SSNs) in this file