Design Date: February 10, 2026
Scope: Strategic redesign to align briefing with master plan, loss function, and founder preferences
Output Location: This file
Implementation Timeline: Immediate (ready for Feb 11, 8:00 AM PT cron)
The current morning briefing is operational but sub-optimal. It reports facts (orders, news, phase status) without connecting to what actually matters to Quan: protecting embodied vitality, relational integrity, and founder sovereignty while maintaining business momentum.
Current Problems:
Redesign Approach:
Timing: 8:00 AM PT, isolated Sonnet session, delivered to Telegram
Duration: <3 min read time (forest) + reference links for trees
Format: Markdown with clear section hierarchy and decision points
30-second read. Where are we in the master plan? What's the quarterly horizon?
## π» FOREST: Master Plan Horizon
**Current Phase:** Phase 3 (Integrations & Workflows)
**Days in Phase:** [calculated from phase_start_date]
**Phase Gate Criteria:** [current gate criteria with progress %]
**Quarterly Milestones (Q1 2026):**
- [ ] Phase 3 β Phase 4 gate pass (all integrations tested, morning briefing value proven)
- [ ] Grant cycle tracker live (districts in purchase windows identified)
- [ ] Conference pipeline built (3+ pre-conference prep docs created)
- [ ] Charlie accounting automation approved & scoped (Zoho Books + Xero API access negotiated)
**Blockers / Dependencies:**
- Phase 4 blocked on: reference/ files population (ZTAG districts, grant cycles, product specs)
- Charlie automation blocked on: Quan approval + API scope agreement
- Cost optimization blocked on: heartbeat interval tuning (currently $13.50/day, target $5-7/day)
**Master Plan Health:** [traffic light: π’ ON TRACK / π‘ CAUTION / π΄ BLOCKED]
- Rationale: [2-3 sentence assessment]
2-minute read. What happens today? What needs attention this week?
## π² TREES: This Week's Critical Path
### π― Today (Thursday, Feb 10)
**Calendar conflicts:** [1-line summary or "Noneβdeep work available"]
**Deep-work block status:** [π’ PROTECTED / π‘ AT RISK / π΄ LOST]
[If at risk: "Ecosystem Advisory 3β4 PM conflicts with prep. Recommend 10 AMβ1 PM focus window instead."]
**Critical action items due TODAY:**
- [ ] DeepSky FL annual report: Replace Ping with Quan as Officer? β DECISION NEEDED
- [ ] [Other critical items with deadline = today]
---
### π
This Week's Landscape
| Item | Status | Due | Owner |
|------|--------|-----|-------|
| Dev meeting (Mon 8 PM) | Agenda ready | Today | Minnie-Research |
| Dev meeting (Thu 8 PM) | Agenda ready | Today | Minnie-Research |
| [Other named events] | [Status] | [Date] | [Owner] |
**Incoming travel commitments:** [Any trips starting this week or next?]
**Cost tracker:** $[daily spend yesterday] (target: $5β7/day) β [β
GOOD / π‘ RUNNING HOT]
---
### ποΈ COHERENCE CHECK: Relational & Embodied Integrity
**Charlie time this week:** β
Protected? [Day/time] | π‘ At risk? [reason] | π΄ Lost? [what happened]
**Weekly resets scheduled:**
- Evening reset: [MonβFri at 5:30 PM check-in? None skipped? β
/ π‘ / π΄]
- Pre-Charlie reset: [Friday 15 min at HH:MM? β
scheduled / π΄ missing]
- Sunday environment reset: [Sunday 25 min at 9:30 AM? β
scheduled / π΄ missing]
**Embodied vitality assessment:**
- Skiing opportunity this week: β
YES (Mammoth report below) / π΄ NO
- Movement/recovery status: [Brief assessment: "Solid training week last week, recovery adequate" or "Fatigue building, suggest lighter intensity"]
- Weather for reference: [Castaic 91384] [Mammoth CA] β [Links to wttr.in]
**Relational entropy rising?** π’ NO / π‘ YESβ[specific surface like "shared space accumulating", "deadline pressure visible", "tone shift with Charlie noticed"] / π΄ CRITICAL
[If yellow/red: "Recommend pre-Charlie reset brought forward to [day] and extended to [duration]."]
Last Week's Metrics (Minnie-Review report):
Reactive load assessment: [Brief: "Inbox under control", "Email tail buildingβmonitor", "Calendar density risingβprotect focus time"]
---
### πΌ BUSINESS MOMENTUM: Only After Vitality, Relationships, Sovereignty Protected
**ZTAG Pipeline:**
- Districts in contact window (ELOP cycle): [X districts] β [trend: β / β / β]
- Grant cycle tracker: [Status: live? Tracked? Pending?]
- Active proposals pending response: [X] β [any SLAs at risk?]
**Gantom Daily Orders (Prev day):**
- Total: $[amount] | Orders: [count] | Status: [processing / delayed?]
- Tariff update: [Status: waiting on USITC API? Validation pending? Scheduled for [date]]
**High-Leverage Strategic Initiatives:**
- **Charlie accounting automation:** Status = [Approved / In scope definition / Pending API access / In development]
- If pending: "Waiting on Quan decision re: Zoho Books + Xero scope" or "OAauth flows being tested"
- If in progress: "Pre-reconciliation of [X transactions] completed. Charlie review pending."
**Weekly Convergence Pulse (from Minnie-Review):**
- Did execution increase but coherence decrease this week? [Assessment]
- Net assessment: [Loss increasing / Loss stable / Loss reducing]
Only surfaces news NOT previously reported. Uses news-shared.json dedup.
## π° News Intelligence (ZTAG-Relevant Only)
**NEW this week (not in previous briefings):**
### California Education Funding
- **[Headline]:** [Summary. Relevance: [why this matters for ZTAG]]
- Source: [URL]
- Impact: [District purchasing power / policy shift / RFP trigger]
### Ed-Tech Sector
- **[Headline]:** [Summary. Relevance: [competitive threat / validation / opportunity]]
- Source: [URL]
- Implication for ZTAG: [1-2 sentences]
**π Competitive Intelligence:**
- [Any moves by PowerSchool, Google, Microsoft, IXL flagged]
- [Any new entrants or pivots relevant to word-game or edutainment]
**π Policy & Grant Cycle Updates:**
- [Any ELOP/CCLC announcements]
- [Any new districts opening RFPs]
- [Any state funding shifts]
**β οΈ [If ambiguity detected]** Push-back: "The [news item] could mean [A] or [B] depending on [X]. Which interpretation matters for ZTAG strategy? Or is this noise?"
## π― Strategic Priorities In Flight
### 1. Charlie Accounting Automation (HIGH PRIORITY)
**Current Status:** Scope definition
**Pending Decision:** Which specific automations first?
- Pre-reconciliation of bank transactions (Zoho Books)?
- Expense categorization (Xero)?
- Invoice matching (both)?
- Monthly close prep templates?
**Blocking:** Quan approval on scope + Charlie's preferred delivery method (Telegram? Email? Direct Zoho comments?)
**Next step:** Once approved, I build Zoho Books + Xero read-only connectors (Phase 5 timeline, but high priority)
---
### 2. Grant Cycle Tracker (ZTAG Core)
**Current Status:** [Design phase / Testing / Live]
**Progress:** [Description of what's tracked, how many districts, update frequency]
---
### 3. Meeting Automation (Operational)
**Current Status:** Live
**This week's capture:** [X meetings processed] β [Fathom transcripts saved, agenda notes extracted]
---
### 4. Phase 3 Integrations Progress
**Connected:** Google Calendar β
| Gmail β
| Zoho CRM β
| Google Drive β
| Meeting automation β
| Brave Search β
**Awaiting:** DHL API (approval pending) | USITC DataWeb (Quan registration needed)
**Next:** Zoho Cliq integration (for team-facing outputs)
## π¨ Issues Requiring Your Clarity
**[If any ambiguities detected in emails, calendar, or context]:**
**1. [Issue name]**
- **What I'm seeing:** [Facts]
- **Possible interpretations:** [A] [B] [C]
- **What I need from you:** Which interpretation matters? Or should I flag this as low-priority?
**Example (from current state):**
- **Issue: March 20 Ecosystem Advisory vs SHAPE America Missouri**
- What I'm seeing: Advisory on calendar 3β4 PM PT, SHAPE America is March 17β21 trip
- Possible interpretations: (A) Decline Advisory, attend SHAPE; (B) Attend Advisory 3β4 PM, then fly out; (C) Delegate Advisory
- What I need: What's your priority order? Or what additional context would clarify the right choice?
## βοΈ Email Triage (48h scan, 3 accounts)
**IMPORTANT β ACTION REQUIRED:**
- [Critical email 1] β **Decision needed:** [brief what]
- [Critical email 2] β **Action:** [brief what]
**COUNT & TREND:**
- Unread: [X] (β / β / β vs yesterday)
- From Quan's VIPs: [X] Important, [Y] standard
- Automated/marketing: [X] (filtered, archived)
**Notable senders this week:** [Teresa@m5stack.com about Celebrity V3 shipment, Tin De Guzman re: safety initiative, etc.]
**Blocked/escalating:** [Any patterns? "No urgent emails past 24h" or "Escalations building in [category]"]
## π Weather & Location Context
**Castaic (Local):** [Current: temp, conditions, wind, humidity via wttr.in]
**Mammoth (Skiing):** [Current: snow depth, conditions, wind via wttr.in]
**Timezone note:** PT (UTC-8 until March 8, then PDT)
---
## π§ Workspace & System Health
**Phase status:** [Phase X, day Y]
**Cost tracking:** [Yesterday: $X / target: $5β7 / week avg: $Y] β [π’ OK / π‘ RUNNING HOT]
**Infrastructure:** [OpenClaw v[version] | Heartbeat: [status] | All agents running: β
/ π‘ / π΄]
**Cron schedule for today:**
- 8:00 AM: Morning briefing (you're reading this)
- [Other scheduled jobs today]
- 5:30 PM: Evening reset reminder
- [Others]
---
## π Bottom Line
**What to focus on today:**
1. [Most critical action]
2. [Secondary action]
3. [Soft priority if time allows]
**Risk to be aware of:** [1-2 sentences on what could derail the day]
---
*Briefing generated by Minnie-Ops at [timestamp] | Next briefing: [date time PT]*
*Data sources: Google Calendar, Gmail (3 accounts), Google Drive, Zapier webhooks, web search*
File: ~/.openclaw/cron/jobs.json
Agent: Minnie-Ops
Current schedule: 8:00 AM PT (moved from 6:30 AM on Feb 10)
Model: Claude Sonnet 4.5
Daily cap: $2
Current job definition:
{
"name": "morning-briefing",
"schedule": "0 8 * * *",
"agent": "minnie-ops",
"model": "anthropic/claude-sonnet-4-5",
"context": ["soul.md", "identity.md", "user.md", "MEMORY.md"],
"prompt": "Generate morning briefing covering calendar, email triage, news, phase status...",
"output_dir": "working/ops/daily-briefings/",
"isolated_session": true
}
1. Load Additional Context Files
"context": [
"soul.md",
"identity.md",
"user.md",
"MEMORY.md",
"master-plan.md",
"memory/YYYY-MM-DD.md", β yesterday's memory
"working/ops/email-patterns.md",
"reference/ztag/overview.md", β if populated
"reference/ztag/grant-cycles.md", β if populated
"tools/news-shared.json" β dedup tracking
]
2. Add Data Fetching Tasks Before Briefing Generation
{
"name": "morning-briefing",
"schedule": "0 8 * * *",
"agent": "minnie-ops",
"model": "anthropic/claude-sonnet-4-5",
"steps": [
{
"name": "fetch-calendar",
"action": "google_calendar_fetch",
"params": {
"days_ahead": 14,
"output_file": "working/ops/calendar-view.json"
}
},
{
"name": "fetch-email",
"action": "gmail_fetch",
"params": {
"hours_back": 48,
"accounts": ["quan@ztag.com", "quan@gantom.com", "quan777@gmail.com"],
"output_file": "working/ops/email-triage.json"
}
},
{
"name": "fetch-weather",
"action": "weather_fetch",
"params": {
"locations": [
{ "name": "Castaic", "zip": "91384" },
{ "name": "Mammoth", "region": "CA" }
],
"output_file": "working/ops/weather.json"
}
},
{
"name": "search-news",
"action": "web_search",
"params": {
"queries": [
"California education funding districts ELOP CCLC",
"ed-tech K-12 news 2026",
"competitive edtech AI word games"
],
"exclude_from": "tools/news-shared.json", β dedup
"max_results": 5,
"output_file": "working/ops/news-scan.json"
}
},
{
"name": "generate-briefing",
"action": "agent_session",
"context": [
"soul.md",
"identity.md",
"user.md",
"MEMORY.md",
"master-plan.md",
"memory/2026-02-09.md", β yesterday
"working/ops/email-triage.json",
"working/ops/calendar-view.json",
"working/ops/weather.json",
"working/ops/news-scan.json"
],
"prompt_file": "cron/morning-briefing-prompt.md",
"model": "anthropic/claude-sonnet-4-5",
"output_file": "working/ops/daily-briefings/2026-02-11-morning.md",
"telegram_announce": true
}
]
}
3. Create Cron Prompt File
File: cron/morning-briefing-prompt.md
# Morning Briefing Cron Prompt
You are Minnie-Ops, an optimizer that minimizes loss in Quan's life across four priority domains:
## Your Core Directive
Generate a morning briefing that reflects Quan's actual priorities, not generic operational data. The briefing must answer: "What matters today?" not "What happened in the last 48 hours?"
## Structure (Follow Exactly)
Your briefing MUST include these sections in this order:
### 1. π» FOREST: Strategic Trajectory (30 seconds)
- Current phase + progress %
- Quarterly milestones for Q1 2026
- Blockers / dependencies
- Master plan health (π’ ON TRACK / π‘ CAUTION / π΄ BLOCKED)
### 2. π² TREES: This Week & Today (2 minutes)
- Today's calendar conflicts (1-line summary)
- Deep-work block status: π’ PROTECTED / π‘ AT RISK / π΄ LOST
- Critical action items due TODAY (with β
checkboxes)
- This week's critical path (table format)
- Incoming travel commitments
### 3. ποΈ COHERENCE CHECK: Relational & Embodied Integrity
- Charlie time this week: status + dates
- Weekly resets scheduled (evening, pre-Charlie, Sunday) with β
/π΄ icons
- Embodied vitality assessment (skiing, movement, recovery)
- Relational entropy rising? π’ NO / π‘ YES / π΄ CRITICAL
- Weather (Castaic + Mammoth) with wttr.in links
### 4. π FOUNDER SOVEREIGNTY DASHBOARD
- Last week's metrics from Minnie-Review (interruptions created vs removed, deep-work blocks, decisions made vs deferred)
- Reactive load assessment (inbox, calendar density)
### 5. πΌ BUSINESS MOMENTUM (Only After Above Three Protected)
- ZTAG pipeline: districts in contact window, grant tracker status, pending proposals
- Gantom daily orders summary
- High-leverage initiatives: Charlie accounting automation status + unblocked actions
- Weekly convergence pulse
### 6. π° NEWS & INTELLIGENCE (Filtered ONLY for ZTAG Relevance)
**CRITICAL DEDUP RULE:**
- Load tools/news-shared.json
- Check every news item against previous reports
- SKIP any news already reported
- Only include NEW news
- After generating briefing, ADD all included news items to news-shared.json with timestamp + source
**Format each news item:**
**Filter criteria:**
- California education funding (district budgets, ELOP/CCLC announcements)
- Ed-tech competitive intelligence (PowerSchool, Google, Microsoft, IXL, new entrants)
- Policy & grant cycle updates (state funding shifts, new RFPs)
- **SKIP:** Generic tech news, finance news, non-education ed-tech, federal ed policy that doesn't affect CA districts
### 7. π STRATEGIC INITIATIVES: In-Progress Snapshots
Include these if they have meaningful updates:
- Charlie accounting automation (current status, blocking issues)
- Grant cycle tracker (status + progress)
- Meeting automation (weekly capture count)
- Phase 3 integrations (what's connected, what's pending)
### 8. β οΈ DECISION POINTS & AMBIGUITIES
**This section is critical.** If you detect ANY ambiguity in emails, calendar, or context:
- State the ambiguity clearly
- List possible interpretations
- Ask Quan which interpretation matters
- **Example:** "March 20 Ecosystem Advisory (3β4 PM PT) vs SHAPE America trip (Mar 17β21). Options: [A] Decline Advisory, [B] Attend Advisory then fly out, [C] Delegate. Which priority?"
### 9. βοΈ EMAIL TRIAGE
- IMPORTANT items requiring decision or action (with specific ask)
- Count & trend (unread, VIP senders, automated)
- Notable senders this week
- Any escalating patterns
### 10. π€οΈ OPERATIONAL CONTEXT
- Weather (Castaic + Mammoth with wttr.in format)
- Phase status, cost tracking, infrastructure health
- Cron schedule for today
- Bottom line: top 3 focus areas + risk to be aware of
## Behavioral Rules (Non-Negotiable)
### Rule 1: Loss-Function-First Ordering
Order everything by Quan's loss function:
1. Embodied vitality (skiing, movement, recovery) β treated as STATE AMPLIFIER, not leisure
2. Relational integrity (Charlie time, family, environmental order) β protected absolutely
3. Founder sovereignty (deep-work blocks, reactive minimization) β interruptions tracked
4. Business momentum β only optimized after above three protected
**Example:** If Charlie time is unprotected and skiing is at risk, that's a red flag, even if ZTAG pipeline looks great.
### Rule 2: Ambiguity Pushback (Quan Explicitly Requested)
When Quan leaves things ambiguous or incomplete:
- Don't assume
- Push back with questions
- Present multiple interpretations
- Ask which one matters
Example: "You mentioned China trip Mar 2β8 and also Feb 24β28 CA Symposium. These overlap. Do you mean: [A] CA Symp then China, [B] Skip CA Symp, [C] Both simultaneously?"
### Rule 3: Tradeoff Clarity (Optimize, Not Opine)
You are allowed to surface tradeoffs. You are NOT allowed to moralize.
**Allowed:** "High training load + limited recovery + upcoming travel = coherence risk this week."
**Not allowed:** "You're pushing too hard. You should slow down."
### Rule 4: Dedup News (Never Repeat)
Before including any news:
1. Check tools/news-shared.json
2. If headline or core insight was already reported, SKIP IT
3. After briefing, append all included news items to news-shared.json: `{ "headline": "...", "source": "...", "date": "2026-02-11T08:00:00Z" }`
### Rule 5: Preference Compliance
- **ZUES, not ZEUS** (product name)
- **Include Fathom links** when referencing meeting summaries
- **Weather via wttr.in** (Castaic 91384 + Mammoth CA)
- **Deep-work protection**: Flag when calendar density threatens focus time
- **Charlie time**: Show scheduled block with pre-reset reminder
- **Resets**: Treat as finite phase shifts, not endless tasks
- **Cost**: Show daily spend vs target, flag if running hot
- **Interruptions**: Track created vs removed as sovereignty metric
### Rule 6: Admit Uncertainty
If you can't determine something (e.g., whether a calendar conflict is firm or flexible):
- Say so explicitly
- Explain what you'd need to resolve it
- Ask Quan for clarification
Example: "I see Advisory on your calendar 3β4 PM Thu but no 'firm' tag. Is this a must-attend or flexible if higher priority emerges?"
## Edge Cases & Handling
**If no calendar for today:** "No external calendar commitments. Deep-work block fully available."
**If no email flagged as Important:** "Inbox cleanβno action items detected. [Secondary items in queue: X]"
**If no new news passed dedup filter:** "No new ZTAG-relevant news this cycle. [Ongoing monitoring: grant deadlines, competitive moves]"
**If master plan phase blockers exist:** Highlight clearly. "BLOCKER: Phase 4 blocked on reference/ files. Recommend prioritizing ZTAG overview + districts + grant cycles population."
**If coherence check shows red flag:** Make it VISIBLE. "π΄ CRITICAL: Charlie time unscheduled this week + relational entropy rising. Recommend bringing pre-reset forward."
## Output Requirements
- **Format:** Markdown
- **Length:** ~2000β2500 tokens (forest 500, trees 600, coherence 400, sovereignty 200, business 300, news 400, decisions 200)
- **Delivery:** Telegram announcement (via isolated session post-action)
- **File:** working/ops/daily-briefings/[YYYY-MM-DD]-morning.md
- **Metadata:** Include timestamp, next briefing date/time
---
## Data Sources You Have Access To
- MEMORY.md (long-term memory, loss function, constraints)
- master-plan.md (phase roadmap, milestones, gates)
- memory/YYYY-MM-DD.md (yesterday + today if filled)
- working/ops/email-triage.json (from cron fetch)
- working/ops/calendar-view.json (from cron fetch)
- working/ops/weather.json (from cron fetch)
- working/ops/news-scan.json (from cron fetch, pre-deduplicated)
- tools/news-shared.json (all news ever reported to Quan)
- working/ops/email-patterns.md (learned VIP senders, Important categories)
- reference/ files (ZTAG + Gantom context, when populated)
---
## After You Generate the Briefing
1. Write output to: working/ops/daily-briefings/[YYYY-MM-DD]-morning.md
2. Update tools/news-shared.json with all news items included (append to array)
3. Announce to Telegram with:
- π Morning briefing link
- 1-sentence summary of top focus
- Any π΄ flags highlighted
4. Log cost to working/cost-log.md: [timestamp] [cost] [agent] [session_id]
---
That's it. Now generate the briefing. Remember: you are optimizing for Quan's actual loss function, not generic operational reporting.
Create tool: tools/weather-fetch.py
#!/usr/bin/env python3
import json
import urllib.request
import sys
from datetime import datetime
def fetch_weather(location_name, location_query):
"""Fetch weather from wttr.in and return 1st line + wind/humidity"""
try:
url = f"https://wttr.in/{location_query}?format=%c+%t+Wind:%w+Humidity:%h"
response = urllib.request.urlopen(url, timeout=5)
data = response.read().decode().strip()
return {
"location": location_name,
"query": location_query,
"conditions": data,
"wttr_url": f"https://wttr.in/{location_query}",
"timestamp": datetime.utcnow().isoformat() + "Z"
}
except Exception as e:
return {
"location": location_name,
"error": str(e)
}
if __name__ == "__main__":
castaic = fetch_weather("Castaic", "91384")
mammoth = fetch_weather("Mammoth", "Mammoth+CA")
output = {
"timestamp": datetime.utcnow().isoformat() + "Z",
"locations": [castaic, mammoth]
}
with open("working/ops/weather.json", "w") as f:
json.dump(output, f, indent=2)
print(json.dumps(output, indent=2))
File: tools/news-shared.json
Purpose: Master log of all news reported to Quan β used to prevent repeats
Updated: Every morning after briefing generation
Retention: Keep indefinitely (allows detecting if same story cycles months later)
{
"metadata": {
"version": "1.0",
"created": "2026-02-11T08:00:00Z",
"last_updated": "2026-02-11T08:00:00Z",
"description": "Master log of news reported to Quan via morning briefing. Used for deduplication.",
"retention_policy": "Keep indefinitely. Delete only if source URL becomes permanently invalid."
},
"news_items": [
{
"id": "news_20260210_001",
"headline": "Education Foundation awards $280K in grants to CA educators",
"source_url": "https://example.com/article",
"source_domain": "example.com",
"category": "california-education-funding",
"summary": "SchoolsFirst Federal Credit Union's Education Foundation distributed $280K across 45 districts in 12 CA counties.",
"ztag_relevance": "Signals active investment in innovation; relevant for ZTAG positioning with districts.",
"date_published": "2026-02-04",
"date_reported_to_quan": "2026-02-09T08:00:00Z",
"briefing_file": "working/ops/daily-briefings/2026-02-09-morning.md",
"is_active": true,
"notes": "First occurrence; monitor for follow-up coverage."
},
{
"id": "news_20260210_002",
"headline": "California teachers unions raising stakes in contract talks",
"source_url": "https://politico.com/article",
"source_domain": "politico.com",
"category": "california-policy",
"summary": "Unions say Newsom's record spending proposal not sufficient; context: Trump admin funding threats.",
"ztag_relevance": "Policy uncertainty affects district budgets and purchase timing.",
"date_published": "2026-02-02",
"date_reported_to_quan": "2026-02-09T08:00:00Z",
"briefing_file": "working/ops/daily-briefings/2026-02-09-morning.md",
"is_active": true,
"notes": "Ongoing story; monitor for resolution."
},
{
"id": "news_20260209_001",
"headline": "Ed-Tech Pulse 2026: PowerSchool annual research",
"source_url": "https://powerschool.com/pulse",
"source_domain": "powerschool.com",
"category": "edtech-competitive",
"summary": "PowerSchool released annual Kβ12 research on school challenges, budget uncertainty, IT director priorities.",
"ztag_relevance": "Competitive intelligence; understand buyer priorities and pain points.",
"date_published": "2026-02-08",
"date_reported_to_quan": "2026-02-09T08:00:00Z",
"briefing_file": "working/ops/daily-briefings/2026-02-09-morning.md",
"is_active": true,
"notes": "Annual report; typically not updated until next year."
}
],
"categories": {
"california-education-funding": "District budgets, ELOP/CCLC announcements, state funding shifts",
"california-policy": "State-level education policy, funding debates, reform proposals",
"edtech-competitive": "PowerSchool, Google, Microsoft, IXL, new ed-tech entrants, market moves",
"edtech-industry": "Conference announcements, industry trends, vendor consolidations",
"policy-federal": "Federal ed funding, Biden/Trump policy (usually lower priority unless CA-specific impact)",
"grant-cycles": "New grant programs, deadline announcements, ZTAG-eligible funding",
"ztag-specific": "ZTAG customer wins, product coverage, peer mentions"
},
"dedup_rules": {
"rule_1": "If headline is identical β SKIP (obvious rerun)",
"rule_2": "If headline is semantically identical but slightly rewording β SKIP (e.g., 'CA teachers raise stakes' vs 'Teachers escalate contract talks')",
"rule_3": "If source URL is same β SKIP (same article syndicated multiple times)",
"rule_4": "If story is about same event but different angle (e.g., follow-up) β INCLUDE with note 'Related to [id]'",
"rule_5": "If story cycled > 30 days ago β INCLUDE if genuinely new developments (mark 'Revisiting [old_id]')"
}
}
# Pseudo-code for checking dedup before briefing generation
def should_skip_news_item(candidate_headline, candidate_source, news_shared_json):
"""Returns True if this news should be skipped (already reported)"""
for existing_item in news_shared_json["news_items"]:
# Rule 1: Identical headline
if candidate_headline.lower() == existing_item["headline"].lower():
return True, f"Exact match: {existing_item['id']}"
# Rule 2: Identical source URL
if candidate_source == existing_item["source_url"]:
return True, f"Same URL: {existing_item['id']}"
# Rule 3: Semantic similarity + same domain (fuzzy match on key phrases)
if (candidate_source.split('/')[2] == existing_item["source_url"].split('/')[2] and
semantic_similarity(candidate_headline, existing_item["headline"]) > 0.85):
return True, f"Similar story: {existing_item['id']}"
return False, None
Every Sunday, Minnie-Review:
is_active: true and no follow-up coverageis_active: false if story no longer relevantThis section distills patterns from 6,000+ lines of timeline, 10+ days of memory files, and explicit feedback. These are the real priorities Quan operates from, not stated ideals.
Evidence:
What this means for briefing:
Implication: A day where Quan loses 2 hours of ski time but gains $50K deal is a NET LOSS by his actual values. Briefing must surface this tradeoff.
Evidence:
What this means for briefing:
Implication: Business opportunity that lands during Charlie time isn't an opportunity β it's a loss. Briefing must protect it absolutely.
Evidence:
What this means for briefing:
Implication: Losing 2 hours to reactive meetings but completing a critical thinking task = win. Gaining 2 hours of low-value time = loss. Briefing must distinguish quality vs quantity.
Evidence:
What this means for briefing:
Implication: A feature that takes 5 min to execute but requires 30 min of attention/decision-making is regressive. Briefing should surface net load, not gross output.
Evidence:
What this means for briefing:
Implication: Better to interrupt once with a question than to misdirect and waste time. Briefing must be proactive about ambiguity, not silent about it.
Evidence:
What this means for briefing:
Implication: 5 relevant news items > 20 noise items. Quality signal matters more than volume.
Evidence:
What this means for briefing:
Implication: Briefing is a mirror (here's the tradeoff) + compass (here are the options), not a parent (you should...).
Evidence:
What this means for briefing:
Implication: This initiative justifies the entire Minnie project. Briefing should make progress visible daily.
Evidence:
What this means for briefing:
Implication: Consistency > speed. Dropped details erode trust in automation.
Evidence:
What this means for briefing:
Implication: Quan is budget-disciplined and wants to understand spend drivers, not just total cost.
Evidence:
What this means for briefing:
Implication: Respect focus time. Async delivery > real-time interruption for routine updates.
Evidence:
What this means for briefing:
Implication: Briefing should orient Quan in long-term trajectory, not just tactical day.
Quantum Gan optimizes for:
His decision-making style:
What kills trust with Quan:
What builds trust:
High Confidence (>95%, from explicit feedback or 10+ pattern instances):
Medium Confidence (70-90%, from 3-5 pattern instances or reasonable inference):
Lower Confidence (50-70%, single instance or inference):
To activate the redesigned morning briefing:
cron/morning-briefing-prompt.md (the full prompt template above)tools/weather-fetch.py (weather data source)tools/news-shared.json (initialize empty, first briefing populates it)tools/news-dedup.py (logic to check against news-shared.json)~/.openclaw/cron/jobs.json to add data-fetch steps (calendar, email, weather, news)Technical:
Behavioral:
Phase Gate:
These are out of scope for this redesign but should be tracked:
End of Morning Briefing Redesign Document
Created by Minnie subagent on 2026-02-10
Ready for implementation: 2026-02-11 08:00 PT