morning-briefing
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseMorning Briefing Workflow
晨间简报工作流
Overview
概述
Generates a daily morning briefing and delivers it three ways:
- Terminal: Summary displayed immediately
- Obsidian: Full briefing saved to daily note
- Email: Briefing text + audio podcast attachment
每日生成晨间简报,并通过三种方式交付:
- 终端:即时显示摘要
- Obsidian:完整简报保存至每日笔记
- 邮件:简报文本 + 音频播客附件
Location
位置
- Gig Harbor, WA - Use for weather queries
- Gig Harbor, WA - 用于天气查询
Phase 1: Gather Data
第一阶段:收集数据
Execute these data gathering steps:
执行以下数据收集步骤:
1.1 Calendar (Today's Events)
1.1 日历(今日日程)
bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun calendar/list_events.js psd --todayReturns JSON with today's events including:
- Event summary, location, start/end times
- Attendees and response status
- Hangout/meet links
Account: Use for work calendar
psdbash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun calendar/list_events.js psd --today返回包含今日日程的JSON数据,包括:
- 日程摘要、地点、开始/结束时间
- 参会者及回复状态
- 视频会议链接
账户:使用访问工作日历
psd1.2 OmniFocus Tasks (Due & Flagged)
1.2 OmniFocus任务(到期与标记项)
bash
osascript -l JavaScript /Users/hagelk/non-ic-code/geoffrey/skills/morning-briefing/scripts/get_due_flagged.jsReturns tasks that are:
- Due today or overdue
- Flagged
- Available (not blocked, not deferred to future)
bash
osascript -l JavaScript /Users/hagelk/non-ic-code/geoffrey/skills/morning-briefing/scripts/get_due_flagged.js返回符合以下条件的任务:
- 今日到期或已逾期
- 已标记
- 可执行(未被阻塞、未推迟至未来)
1.3 Recent Emails (Last 24 Hours)
1.3 近期邮件(过去24小时)
bash
undefinedbash
undefinedGet yesterday's date in Gmail query format
获取Gmail查询格式的昨日日期
YESTERDAY=$(date -v-1d +%Y/%m/%d)
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun gmail/list_messages.js psd --query "in:inbox after:$YESTERDAY" --max 15
Returns recent inbox messages with:
- From, subject, date, snippet
- Whether read or unread
- Thread ID for context
- Labels array
**Filtering**: Only show emails still in inbox (not already labeled/processed).
- Emails with custom labels (Label_XXXXX) have been sorted and should be excluded
- Exception: Include emails with SaneCC or SaneLater labels (worth knowing about)
- System labels (UNREAD, INBOX, CATEGORY_*, IMPORTANT) don't count as "processed"
**Philosophy**: Any email still in inbox from last 24 hours needs attention, read or not.
**Account**: Use `psd` for work emailYESTERDAY=$(date -v-1d +%Y/%m/%d)
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun gmail/list_messages.js psd --query "in:inbox after:$YESTERDAY" --max 15
返回收件箱中的近期邮件,包括:
- 发件人、主题、日期、摘要
- 是否已读
- 对话ID(用于上下文)
- 标签数组
**过滤规则**:仅显示仍在收件箱中的邮件(未标记/处理)。
- 带有自定义标签(Label_XXXXX)的邮件已分类,需排除
- 例外:包含SaneCC或SaneLater标签的邮件需保留(值得关注)
- 系统标签(UNREAD、INBOX、CATEGORY_*、IMPORTANT)不算作“已处理”
**原则**:过去24小时内仍在收件箱中的邮件无论已读与否,都需要关注。
**账户**:使用`psd`访问工作邮箱1.4 Open Freshservice Tickets
1.4 待处理Freshservice工单
bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/list_tickets.js '{"workspace_id": 2, "filter": "new_and_my_open"}'Returns open tickets assigned to or created by user in Technology workspace.
bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/list_tickets.js '{"workspace_id": 2, "filter": "new_and_my_open"}'返回技术工作区中分配给用户或由用户创建的待处理工单。
1.5 Pending Approvals
1.5 待审批请求
bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_approvals.js requestedReturns service requests awaiting approval.
bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_approvals.js requested返回等待审批的服务请求。
1.6 Weather
1.6 天气
Use WebSearch:
Gig Harbor WA weather today forecastExtract:
- Current conditions
- High/low temperature
- Precipitation chance
- Any alerts
使用WebSearch:
Gig Harbor WA weather today forecast提取信息:
- 当前天气状况
- 最高/最低气温
- 降水概率
- 预警信息
1.7 EdTech News (with Synopses)
1.7 教育科技新闻(含摘要)
Use WebSearch:
K-12 education technology news past 24 hours January 2026For each article found (3-5 articles):
- Use WebFetch to read the full article
- Extract a 2-3 sentence synopsis covering:
- What happened / what's new
- Why it matters for K-12 education
- Key takeaway or action item
Freshness check: Verify article dates before including. Only include articles published within the last 24 hours. Skip older articles even if they appear in results.
Topics to cover:
- EdTech product launches and updates
- School technology policy changes
- Cybersecurity in schools
- Digital learning trends
使用WebSearch:
K-12 education technology news past 24 hours January 2026对于找到的每篇文章(3-5篇):
- 使用WebFetch读取完整文章
- 提取2-3句摘要,涵盖:
- 事件/新动态
- 对K-12教育的影响
- 关键要点或行动建议
时效性检查:确认文章发布日期,仅包含过去24小时内发布的文章,即使结果中出现旧文章也需跳过。
覆盖主题:
- 教育科技产品发布与更新
- 学校科技政策变化
- 学校网络安全
- 数字化学习趋势
1.8 AI News (with Synopses)
1.8 AI新闻(含摘要)
Use WebSearch:
artificial intelligence news past 24 hours January 2026 latestFor each article found (3-5 articles):
- Use WebFetch to read the full article
- Extract a 2-3 sentence synopsis covering:
- What's the development
- Industry impact
- Relevance to education/work
Freshness check: Verify article dates before including. Only include articles published within the last 24 hours. Skip older articles even if they appear in results.
Topics to cover:
- Major AI model releases and capabilities
- AI policy and regulation
- Enterprise AI adoption
- AI research breakthroughs
使用WebSearch:
artificial intelligence news past 24 hours January 2026 latest对于找到的每篇文章(3-5篇):
- 使用WebFetch读取完整文章
- 提取2-3句摘要,涵盖:
- 技术进展
- 行业影响
- 对教育/工作的相关性
时效性检查:确认文章发布日期,仅包含过去24小时内发布的文章,即使结果中出现旧文章也需跳过。
覆盖主题:
- 主流AI模型发布与功能
- AI政策与监管
- 企业AI应用
- AI研究突破
1.9 K-12 Leadership News (with Synopses)
1.9 K-12教育领导力新闻(含摘要)
Use WebSearch:
K-12 school leadership superintendent news past 24 hours January 2026For each article found (2-3 articles):
- Use WebFetch to read the full article
- Extract a 2-3 sentence synopsis covering:
- Policy or leadership development
- Impact on districts/schools
- Relevance to CIO/technology leadership
Freshness check: Verify article dates before including. Only include articles published within the last 24 hours. Skip older articles even if they appear in results.
Topics to cover:
- State and federal education policy
- Superintendent and board news
- School funding and budgets
- Workforce and staffing trends
使用WebSearch:
K-12 school leadership superintendent news past 24 hours January 2026对于找到的每篇文章(2-3篇):
- 使用WebFetch读取完整文章
- 提取2-3句摘要,涵盖:
- 政策或领导力动态
- 对学区/学校的影响
- 对CIO/技术领导力的相关性
时效性检查:确认文章发布日期,仅包含过去24小时内发布的文章,即使结果中出现旧文章也需跳过。
覆盖主题:
- 州级与联邦教育政策
- 督学与校董会新闻
- 学校经费与预算
- 劳动力与人员配置趋势
1.9b School Safety & Security News (with Synopses)
1.9b 校园安全与安保新闻(含摘要)
Use WebSearch:
K-12 school safety security news past 24 hours January 2026For each article found (3 articles):
- Use WebFetch to read the full article
- Extract a 2-3 sentence synopsis covering:
- What happened / what's new
- Impact on school safety practices
- Key takeaway for districts
Freshness check: Verify article dates before including. Only include articles published within the last 24 hours. Skip older articles even if they appear in results.
Topics to cover:
- School security incidents and responses
- Safety policy changes
- Emergency preparedness
- Mental health and threat assessment
- Physical security technology
使用WebSearch:
K-12 school safety security news past 24 hours January 2026对于找到的每篇文章(3篇):
- 使用WebFetch读取完整文章
- 提取2-3句摘要,涵盖:
- 事件/新动态
- 对校园安全实践的影响
- 学区需关注的要点
时效性检查:确认文章发布日期,仅包含过去24小时内发布的文章,即使结果中出现旧文章也需跳过。
覆盖主题:
- 校园安保事件与应对
- 安全政策变化
- 应急准备
- 心理健康与威胁评估
- 实体安保技术
1.10 Technology Team EOD Messages (Last Business Day) - DETAILED
1.10 技术团队工作日志(上一个工作日)- 详细版
Get end-of-day check-in messages from the Technology Staff space:
bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun chat/get_eod_messages.js psd spaces/AAAAxOtpv10 last-business-dayCRITICAL - NO HALLUCINATION:
- ONLY use names that appear in the field of the script output
sender - If script returns no messages, say "No EOD messages found"
- If script returns messages with sender IDs instead of names, display the ID (e.g., "users/12345...")
- NEVER invent names, locations, or accomplishments
- Copy-paste approach: treat script output as source of truth
Before extracting team data:
- Examine the raw JSON output from the script
- List the exact values returned
sender - Use ONLY those names - no paraphrasing, no "improving"
CRITICAL: Extract FULL details from each team member's EOD message. Look for messages that contain "Today:" prefix - these are the detailed EOD summaries.
For each team member who posted an EOD summary:
- Name: Who posted (use EXACTLY the name from field)
sender - Location(s): Where they worked (WFH, DCRC, school sites)
- Key accomplishments: Specific tasks completed (not just "tickets")
- Notable items: Interesting problems solved, projects worked on
- Issues/blockers: Any problems mentioned
Example extraction from raw message:
Brad White:
- Location: TSD (Tech Services)
- Accomplished: Packaged Cinema 4D plugin for deployment, fixed OAuth blocking for Maxon App sign-in, created SwiftDialog notification for plugin installs, used Claude Code for first time to create Installomator label for Godot game engine
- Notable: Working on Unity deployment troubleshooting, burning comp time leaving earlyNote: If today is Monday, "last business day" = Friday (or Thursday if Friday was a holiday).
获取技术员工空间的工作日志消息:
bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun chat/get_eod_messages.js psd spaces/AAAAxOtpv10 last-business-day关键要求 - 禁止虚构信息:
- 仅使用脚本输出中字段显示的名称
sender - 若脚本未返回任何消息,需显示“未找到工作日志消息”
- 若脚本返回的消息中发送者为ID而非名称,直接显示ID(例如:"users/12345...")
- 禁止编造姓名、地点或工作成果
- 严格复制:将脚本输出作为唯一信息来源
提取团队数据前:
- 查看脚本返回的原始JSON输出
- 列出返回的所有字段的准确值
sender - 仅使用这些名称 - 不得改写、不得“优化”
关键要求:提取每位团队成员工作日志的完整细节。寻找带有“Today:”前缀的消息,这些是详细的工作日志摘要。
对于每位发布工作日志摘要的团队成员:
- 姓名:发布者(严格使用字段中的准确名称)
sender - 工作地点:工作场所(居家办公、DCRC、校园站点)
- 主要工作成果:完成的具体任务(不能仅写“处理工单”)
- 重点事项:解决的疑难问题、参与的项目
- 问题/阻塞项:提到的任何问题
从原始消息提取示例:
Brad White:
- 工作地点:TSD(技术服务部)
- 工作成果:打包Cinema 4D插件用于部署,修复Maxon App登录的OAuth阻塞问题,创建SwiftDialog通知用于插件安装,首次使用Claude Code为Godot游戏引擎创建Installomator标签
- 重点事项:正在排查Unity部署问题,将提前下班调休注意:若今日为周一,“上一个工作日”为周五(若周五为节假日则为周四)。
1.10b Safety & Security Team EOD Messages (Last Business Day)
1.10b 安全与安保团队工作日志(上一个工作日)
Get end-of-day check-in messages from the Safety & Security Staff space:
bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun chat/get_eod_messages.js psd spaces/AAAAFpQaAnA last-business-daySpace: PSD Safety & Security Team
CRITICAL - NO HALLUCINATION:
- ONLY use names that appear in the field of the script output
sender - If script returns no messages, say "No EOD messages found"
- If script returns messages with sender IDs (e.g., "users/12345...") instead of names:
- Display as: Unknown (users/123456...) - [Location from message content]
- Add note: "Name not in mapping - update chat_user_mapping.json"
- NEVER invent names, locations, or accomplishments
- Copy-paste approach: treat script output as source of truth
Before extracting team data:
- Examine the raw JSON output from the script
- List the exact values returned
sender - Use ONLY those names - no paraphrasing, no "improving"
Extract using same format as Technology Team - names, locations, accomplishments, issues.
Note: If today is Monday, "last business day" = Friday (or Thursday if Friday was a holiday).
获取安全与安保员工空间的工作日志消息:
bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun chat/get_eod_messages.js psd spaces/AAAAFpQaAnA last-business-day空间:PSD安全与安保团队
关键要求 - 禁止虚构信息:
- 仅使用脚本输出中字段显示的名称
sender - 若脚本未返回任何消息,需显示“未找到工作日志消息”
- 若脚本返回的消息中发送者为ID(例如:"users/12345...")而非名称:
- 显示格式:Unknown (users/12345...) - [消息中提到的地点]
- 添加说明:“名称未在映射中 - 请更新chat_user_mapping.json”
- 禁止编造姓名、地点或工作成果
- 严格复制:将脚本输出作为唯一信息来源
提取团队数据前:
- 查看脚本返回的原始JSON输出
- 列出返回的所有字段的准确值
sender - 仅使用这些名称 - 不得改写、不得“优化”
采用与技术团队相同的格式提取信息 - 姓名、地点、工作成果、问题。
注意:若今日为周一,“上一个工作日”为周五(若周五为节假日则为周四)。
1.11 Team Completed Tickets (Last Business Day)
1.11 团队已完成工单(上一个工作日)
Get tickets closed by the Technology team on the last business day:
bash
undefined获取技术团队在上一个工作日关闭的工单:
bash
undefinedFirst get the last business day
首先获取上一个工作日
LAST_BIZ_DAY=$(bun /Users/hagelk/non-ic-code/geoffrey/skills/morning-briefing/scripts/get_last_business_day.js | jq -r '.date')
LAST_BIZ_DAY=$(bun /Users/hagelk/non-ic-code/geoffrey/skills/morning-briefing/scripts/get_last_business_day.js | jq -r '.date')
Then get daily summary for that date
然后获取该日期的每日摘要
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_daily_summary.js "$LAST_BIZ_DAY"
**CRITICAL - NO HALLUCINATION:**
- ONLY use agent names that appear in the `byAgent` section of script output
- Use EXACTLY the ticket counts returned by the script
- NEVER invent names or ticket counts
- If an agent's name shows as ID or email, display it as-is
**Before reporting ticket stats:**
1. Examine the raw JSON output from `get_daily_summary.js`
2. List the exact agent names from `byAgent` field
3. Use ONLY those names and counts
Returns:
- Total tickets closed
- Breakdown by agent
- Breakdown by category (Password Reset, Chromebook, etc.)
- Automated vs agent-resolved
**Workspace**: Technology (workspace_id: 2)bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_daily_summary.js "$LAST_BIZ_DAY"
**关键要求 - 禁止虚构信息:**
- 仅使用脚本输出`byAgent`部分显示的代理姓名
- 严格使用脚本返回的工单数量
- 禁止编造姓名或工单数量
- 若代理姓名显示为ID或邮箱,直接原样显示
**报告工单统计前:**
1. 查看`get_daily_summary.js`返回的原始JSON输出
2. 列出`byAgent`字段中的所有准确代理姓名
3. 仅使用这些姓名和数量
返回信息:
- 关闭的工单总数
- 按代理分类的明细
- 按类别分类的明细(密码重置、Chromebook等)
- 自动处理 vs 人工处理
**工作区**:技术(workspace_id: 2)1.12 Ticket Trends Analysis
1.12 工单趋势分析
Compare last business day to previous days for trends:
bash
undefined对比上一个工作日与之前日期的趋势:
bash
undefinedGet last 5 business days of summaries for trend analysis
获取过去5个工作日的摘要用于趋势分析
The get_daily_summary.js script supports date parsing
get_daily_summary.js脚本支持日期解析
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_daily_summary.js "last monday"
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_daily_summary.js "last tuesday"
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_daily_summary.js "last monday"
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_daily_summary.js "last tuesday"
etc.
以此类推
Analyze for:
- Volume trends (increasing/decreasing)
- Category spikes (sudden increase in specific issue types)
- Agent workload distribution
- Unusual patterns
分析方向:
- 工单量趋势(增长/下降)
- 类别峰值(特定问题类型突然增加)
- 代理工作量分布
- 异常模式1.13 Software Development Workspace Tickets
1.13 软件开发工作区工单
Get open tickets in the Software Development workspace:
bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/search_tickets.js "status:2 OR status:3" 13Returns all open (status:2) and pending (status:3) tickets in the Software Development workspace.
Workspace ID: 13 (Software Development)
Note: This is the user's internal software development bug tracker for AI Studio and other PSD applications.
获取软件开发工作区中的待处理工单:
bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/search_tickets.js "status:2 OR status:3" 13返回软件开发工作区中所有待处理(status:2)和挂起(status:3)的工单。
工作区ID:13(软件开发)
说明:这是用户用于AI Studio和其他PSD应用的内部软件开发缺陷跟踪系统。
1.14 Legislative Activity (Last Business Day)
1.14 立法动态(上一个工作日)
Get K-12 education bills with activity since the last business day:
bash
undefined获取上一个工作日以来有动态的K-12教育相关法案:
bash
undefinedGet lookback info and bills to check
获取需检查的回溯信息和法案列表
bun /Users/hagelk/non-ic-code/geoffrey/skills/legislative-tracker/scripts/get_recent_bill_activity.js --last-business-day
This returns:
- Date range to check (last business day → today)
- List of ~143 confirmed education bill IDs
- WebFetch instructions for each bill
**Workflow:**
1. Get the output from `get_recent_bill_activity.js`
2. WebFetch each bill URL (batch 5-6 in parallel for speed)
3. Extract latest action date from each bill page
4. Filter to bills where latest_action_date >= lookback_start
5. Apply priority framework (HIGH/MEDIUM/LOW based on district impact)
6. Include summary of what each bill does
**On Monday**: Lookback starts on Friday (or earlier if Friday was a holiday), so includes all weekend activity (hearings, votes, committee actions).
**Example URLs to WebFetch:**
- `https://app.leg.wa.gov/billsummary?BillNumber=1020&Year=2025`
- `https://app.leg.wa.gov/billsummary?BillNumber=5038&Year=2025`
**Note**: Only include bills that actually had activity. If no bills moved, output "No legislative activity since [date]".bun /Users/hagelk/non-ic-code/geoffrey/skills/legislative-tracker/scripts/get_recent_bill_activity.js --last-business-day
返回信息:
- 需检查的日期范围(上一个工作日 → 今日)
- 约143个已确认的教育法案ID列表
- 每个法案的WebFetch说明
**工作流:**
1. 获取`get_recent_bill_activity.js`的输出
2. 批量并行WebFetch每个法案的URL(5-6个并行以提高速度)
3. 从每个法案页面提取最新操作日期
4. 筛选出最新操作日期 >= 回溯起始日期的法案
5. 应用优先级框架(根据学区影响分为高/中/低)
6. 包含每个法案的内容摘要
**周一特殊处理**:回溯起始日期为周五(若周五为节假日则更早),需包含所有周末动态(听证会、投票、委员会行动)。
**WebFetch示例URL:**
- `https://app.leg.wa.gov/billsummary?BillNumber=1020&Year=2025`
- `https://app.leg.wa.gov/billsummary?BillNumber=5038&Year=2025`
**说明**:仅包含确实有动态的法案。若没有法案有动态,输出“自[日期]以来无立法动态”。Phase 2: Generate Briefing
第二阶段:生成简报
2.1 Analyze & Prioritize
2.1 分析与优先级排序
Review gathered data and identify:
- Conflicts: Overlapping calendar events
- Urgencies: Overdue tasks, high-priority tickets
- Themes: Patterns across data sources
查看收集到的数据并识别:
- 冲突:重叠的日历日程
- 紧急事项:逾期任务、高优先级工单
- 主题:跨数据源的模式
2.2 Format Markdown Briefing
2.2 格式化Markdown简报
Use this structure:
markdown
undefined使用以下结构:
markdown
undefinedDaily Briefing - [DATE]
每日简报 - [日期]
Weather
天气
[Current conditions, high/low, precipitation]
[当前状况、最高/最低气温、降水情况]
Today's Calendar
今日日程
| Time | Event | Location |
|---|---|---|
| ... | ... | ... |
Conflicts/Notes: [any issues]
| 时间 | 事项 | 地点 |
|---|---|---|
| ... | ... | ... |
冲突/说明:[任何问题]
Priority Tasks
优先级任务
Due Today
今日到期
- Task 1
- Task 2
- 任务1
- 任务2
Flagged
已标记
- Task 3
- 任务3
Overdue
已逾期
- Task 4 (due [date])
- 任务4(到期日期:[日期])
Recent Emails (Last 24h)
近期邮件(过去24小时)
[X emails in inbox from last 24 hours]
[过去24小时内收件箱中有X封邮件]
Needs Response
需要回复
- From: [sender] - [subject] (snippet)
- From: [sender] - [subject] (snippet)
- 发件人:[发件人] - [主题](摘要)
- 发件人:[发件人] - [主题](摘要)
FYI/Notifications
通知/仅供参考
- [sender] - [subject]
- [发件人] - [主题]
Freshservice
Freshservice
Technology Tickets: [count] open
技术工单:[X]个待处理
[Top 3-5 tickets by priority/age]
[按优先级/时长排序的前3-5个工单]
Software Development Tickets: [count] open
软件开发工单:[X]个待处理
[List tickets in Software Dev workspace]
[列出软件开发工作区的工单]
Pending Approvals: [count]
待审批请求:[X]个
[List with ticket #, requester, summary]
[列出工单编号、申请人、摘要]
Team Activity (Last Business Day: [DAY, DATE])
团队动态(上一个工作日:[星期,日期])
Data Source Verification (REQUIRED):
- Technology EOD script returned: [X] messages from [list exact sender names from JSON]
- Safety & Security EOD script returned: [X] messages from [list exact sender names from JSON]
- Freshservice daily summary returned: [X] tickets by [list exact agent names from JSON]
Use ONLY the names listed above. Never invent or paraphrase names.
数据源验证(必填):
- 技术团队工作日志脚本返回:[X]条消息,来自[列出JSON中的所有准确发送者姓名]
- 安全与安保团队工作日志脚本返回:[X]条消息,来自[列出JSON中的所有准确发送者姓名]
- Freshservice每日摘要返回:[X]个工单,由[列出JSON中的所有准确代理姓名]处理
仅使用上述列出的姓名,禁止编造或改写姓名。
Technology Team EOD Summaries
技术团队工作日志摘要
[Name from sender field] - [Location(s)]
- [Key accomplishment 1 - be specific about what they did]
- [Key accomplishment 2]
- [Notable: any interesting problems solved or projects]
[Name from sender field] - [Location(s)]
- [Key accomplishment 1]
- [Key accomplishment 2]
- [Issues: any blockers or problems mentioned]
[Continue for each team member who posted an EOD summary]
[sender字段中的姓名] - [工作地点]
- [主要工作成果1 - 需具体说明完成的工作]
- [主要工作成果2]
- [重点事项:解决的疑难问题或参与的项目]
[sender字段中的姓名] - [工作地点]
- [主要工作成果1]
- [主要工作成果2]
- [问题:提到的阻塞项或问题]
[继续列出每位发布工作日志摘要的团队成员]
Safety & Security Team EOD Summaries
安全与安保团队工作日志摘要
[Name from sender field] - [Location(s)]
- [Key accomplishment 1]
- [Key accomplishment 2]
- [Notable: any issues or incidents handled]
If sender shows as user ID (users/12345...), display: Unknown (users/12345...) - [Location]
[Continue for each team member who posted an EOD summary]
[sender字段中的姓名] - [工作地点]
- [主要工作成果1]
- [主要工作成果2]
- [重点事项:处理的问题或事件]
若发送者显示为用户ID(users/12345...),显示格式:Unknown (users/12345...) - [地点]
[继续列出每位发布工作日志摘要的团队成员]
Tickets Completed by Team: [count]
团队已完成工单:[X]个
| Agent | Tickets | Top Categories |
|---|---|---|
| [Name from byAgent field] | X | Password Reset (Y), Chromebook (Z) |
| 代理 | 工单数量 | 主要类别 |
|---|---|---|
| [byAgent字段中的姓名] | X | 密码重置(Y)、Chromebook(Z) |
Ticket Trends
工单趋势
- Volume: [up/down/stable] vs previous days
- Notable patterns: [any spikes or anomalies]
- 工单量:与之前相比[上升/下降/稳定]
- 显著模式:[任何峰值或异常]
EdTech News
教育科技新闻
[Article Title 1] - [Source]
[文章标题1] - [来源]
[2-3 sentence synopsis: what happened, why it matters, key takeaway]
[2-3句摘要:事件内容、重要性、关键要点]
[Article Title 2] - [Source]
[文章标题2] - [来源]
[2-3 sentence synopsis]
[2-3句摘要]
[Article Title 3] - [Source]
[文章标题3] - [来源]
[2-3 sentence synopsis]
[2-3句摘要]
AI News
AI新闻
[Article Title 1] - [Source]
[文章标题1] - [来源]
[2-3 sentence synopsis: what's the development, industry impact, relevance]
[2-3句摘要:技术进展、行业影响、相关性]
[Article Title 2] - [Source]
[文章标题2] - [来源]
[2-3 sentence synopsis]
[2-3句摘要]
[Article Title 3] - [Source]
[文章标题3] - [来源]
[2-3 sentence synopsis]
[2-3句摘要]
K-12 Leadership News
K-12教育领导力新闻
[Article Title 1] - [Source]
[文章标题1] - [来源]
[2-3 sentence synopsis: policy/leadership development, impact, relevance to tech leadership]
[2-3句摘要:政策/领导力动态、影响、对技术领导力的相关性]
[Article Title 2] - [Source]
[文章标题2] - [来源]
[2-3 sentence synopsis]
[2-3句摘要]
School Safety & Security News
校园安全与安保新闻
[Article Title 1] - [Source]
[文章标题1] - [来源]
[2-3 sentence synopsis: what happened, impact on safety practices, takeaway for districts]
[2-3句摘要:事件内容、对安全实践的影响、学区需关注要点]
[Article Title 2] - [Source]
[文章标题2] - [来源]
[2-3 sentence synopsis]
[2-3句摘要]
[Article Title 3] - [Source]
[文章标题3] - [来源]
[2-3 sentence synopsis]
[2-3句摘要]
Legislative Activity ([Last Biz Day] - Today)
立法动态([上一个工作日] - 今日)
[X] education bills had movement:
[X]个教育法案有动态:
🔴 HIGH Priority
🔴 高优先级
[Bill ID] - [Short Title]
[法案ID] - [简短标题]
Action: [What happened - hearing, vote, committee action, etc.]
Summary: [1-2 sentences: what the bill does, potential district impact]
动态:[事件内容 - 听证会、投票、委员会行动等]
摘要:[1-2句:法案内容、对学区的潜在影响]
🟡 MEDIUM Priority
🟡 中优先级
[Bill ID] - [Short Title]
[法案ID] - [简短标题]
Action: [What happened]
Summary: [1-2 sentences]
动态:[事件内容]
摘要:[1-2句]
🟢 LOW Priority
🟢 低优先级
- [Bill ID]: [Action type] - [One line summary]
No legislative activity since [date] - if no bills moved
- [法案ID]:[动态类型] - [一行摘要]
自[日期]以来无立法动态 - 若无法案有动态时显示
Quick Stats
快速统计
- Calendar events: X
- Tasks overdue: X | Due today: X | Flagged: X
- Open tickets (Tech): X
- Open tickets (Software Dev): X
- Pending approvals: X
- Recent emails (24h): X
- Team tickets closed [last biz day]: X
- News articles: EdTech (X) | AI (X) | Leadership (X)
- Legislative bills with activity: X
undefined- 日历日程:X个
- 逾期任务:X个 | 今日到期:X个 | 已标记:X个
- 待处理技术工单:X个
- 待处理软件开发工单:X个
- 待审批请求:X个
- 近期邮件(24小时):X封
- 团队上一个工作日关闭工单:X个
- 新闻文章:教育科技(X)| AI(X)| 领导力(X)
- 有动态的立法法案:X个
undefined2.3 Generate Podcast Script (Extended Format)
2.3 生成播客脚本(扩展格式)
Transform the briefing into a comprehensive conversational audio script:
- First person, casual professional tone
- 10-15 minutes speaking time (~1500-2000 words)
- Address listener directly ("Here's what you need to know today...")
Required Sections (in order):
-
Opening (~100 words)
- Day, date, weather summary
- Quick preview of key items
-
Calendar & Schedule (~150 words)
- Today's events with context
- Highlight key meetings/events
- Note any conflicts or prep needed
-
Tasks & Priorities (~150 words)
- Overdue items that need attention
- Due today items
- Flagged priorities
-
Tickets & Service Desk (~150 words)
- Open Technology tickets
- Software Development tickets
- Pending approvals
-
Team Activity - DETAILED (~400 words)
- What the Technology team accomplished on last business day
- Highlight 3-5 team members by name with specifics
- Notable projects, interesting problems solved
- What the Safety & Security team accomplished
- Overall ticket closure stats
CRITICAL - NO HALLUCINATION:- Use ONLY names from the script output fields
sender - Use ONLY ticket counts from the output
get_daily_summary.js - If script returned no messages, say "No EOD messages were posted"
- NEVER invent names, locations, or accomplishments
-
EdTech News (~200 words)
- 2-3 articles with synopses
- Why each matters for K-12
-
AI News (~200 words)
- 2-3 articles with synopses
- Industry impact and relevance
-
K-12 Leadership News (~150 words)
- 1-2 articles with synopses
- Policy/leadership implications
8b. School Safety & Security News (~150 words)
- 2-3 articles with synopses
- Safety practices and district implications
-
Legislative Update (~150 words)
- Bills that had hearings, votes, or readings since last business day
- Highlight any with direct district impact (fiscal, operational, staffing)
- Note upcoming hearing dates if relevant
- On Mondays, include weekend activity summary
-
Closing (~100 words)
- Top 3 priorities for the day
- Sign off
Style Guidelines:
- Use team members' first names when discussing their work
- Include specific details (not "worked on tickets" but "resolved 34 Chromebook repairs")
- Transition smoothly between sections
- Add brief commentary/analysis on news items
Save to
/tmp/morning_briefing_podcast.txt将简报转换为全面的对话式音频脚本:
- 第一人称、专业随性的语气
- 10-15分钟时长(约1500-2000词)
- 直接与听众对话(“以下是你今日需要了解的内容...”)
必填章节(按顺序):
-
开场(约100词)
- 星期、日期、天气摘要
- 关键内容快速预览
-
日历与日程(约150词)
- 今日日程及背景
- 重点突出关键会议/事项
- 标注任何冲突或需要准备的内容
-
任务与优先级(约150词)
- 需要关注的逾期事项
- 今日到期事项
- 已标记的优先级任务
-
工单与服务台(约150词)
- 待处理技术工单
- 软件开发工单
- 待审批请求
-
团队动态 - 详细版(约400词)
- 技术团队上一个工作日的工作成果
- 重点介绍3-5位团队成员的具体工作
- 重点项目、解决的疑难问题
- 安全与安保团队的工作成果
- 整体工单关闭统计
关键要求 - 禁止虚构信息:- 仅使用脚本输出字段中的姓名
sender - 仅使用输出的工单数量
get_daily_summary.js - 若脚本未返回任何消息,需显示“未发布工作日志消息”
- 禁止编造姓名、地点或工作成果
-
教育科技新闻(约200词)
- 2-3篇文章的摘要
- 每篇对K-12教育的重要性
-
AI新闻(约200词)
- 2-3篇文章的摘要
- 行业影响与相关性
-
K-12教育领导力新闻(约150词)
- 1-2篇文章的摘要
- 政策/领导力影响
8b. 校园安全与安保新闻(约150词)
- 2-3篇文章的摘要
- 对安全实践与学区的影响
-
立法更新(约150词)
- 上一个工作日以来有听证会、投票或宣读的法案
- 重点突出对学区有直接影响的法案(财政、运营、人员配置)
- 若相关,标注即将到来的听证会日期
- 周一需包含周末动态摘要
-
结尾(约100词)
- 今日三大优先级任务
- 结束语
保存至
/tmp/morning_briefing_podcast.txtPhase 3: Create Podcast
第三阶段:创建播客
bash
uv run --with mlx-audio --with pydub /Users/hagelk/non-ic-code/geoffrey/skills/local-tts/scripts/generate_audio.py \
--file /tmp/morning_briefing_podcast.txt \
--voice af_heart \
--output ~/Desktop/morning_briefing_[DATE].mp3Voice Selection: af_heart (warm, friendly - good for morning briefing)
Note: Uses local MLX TTS (Kokoro model) - no API costs
bash
uv run --with mlx-audio --with pydub /Users/hagelk/non-ic-code/geoffrey/skills/local-tts/scripts/generate_audio.py \
--file /tmp/morning_briefing_podcast.txt \
--voice af_heart \
--output ~/Desktop/morning_briefing_[DATE].mp3语音选择:af_heart(温暖友好 - 适合晨间简报)
说明:使用本地MLX TTS(Kokoro模型)- 无API费用
Phase 3.5: Generate Infographic (MANDATORY)
第三阶段补充:生成信息图(必填)
CRITICAL: The infographic MUST be generated. Do not skip this phase.
Create a visual summary infographic using the image-gen skill.
关键要求:必须生成信息图,不得跳过此阶段。
使用图像生成技能创建可视化摘要信息图。
3.5.1 Build Infographic Prompt
3.5.1 构建信息图提示词
Based on gathered data, construct a prompt for the infographic:
Create an infographic summarizing a daily work briefing for [DATE].
Visual concept: A clean dashboard layout with distinct sections for different data categories.
Key data to display:
- Weather: [conditions], High [X]°F, Low [Y]°F
- Calendar: [X] events today, highlight: [key meeting]
- Tasks: [X] overdue, [Y] due today, [Z] flagged
- Tickets: [X] Technology open, [Y] Software Dev open
- Team Activity: [X] tickets closed by team yesterday
- Emails: [X] in inbox from last 24h
Style: Professional, clean design with PSD brand colors (navy blue #003366, gold accent #FFD700).
Flat design, clear sections, modern sans-serif typography.
Layout: Horizontal 16:9, organized as a dashboard with weather top-left, calendar top-right,
tasks and tickets in middle row, team stats at bottom.
Title: "Daily Briefing - [DATE]"
Subtitle: "Gig Harbor, WA"基于收集到的数据,构建信息图的提示词:
创建一个总结[日期]每日工作简报的信息图。
视觉概念:简洁的仪表板布局,不同数据类别有独立分区。
需展示的关键数据:
- 天气:[状况],最高[X]°F,最低[Y]°F
- 日历:今日[X]个日程,重点:[关键会议]
- 任务:逾期[X]个,今日到期[Y]个,已标记[Z]个
- 工单:待处理技术工单[X]个,待处理软件开发工单[Y]个
- 团队动态:团队昨日关闭工单[X]个
- 邮件:过去24小时收件箱中有[X]封邮件
风格:专业简洁的设计,使用PSD品牌色(藏青色#003366,金色强调色#FFD700)。
扁平化设计,分区清晰,现代无衬线字体。
布局:16:9横向,按仪表板组织,左上角为天气,右上角为日历,中间行是任务与工单,底部是团队统计。
标题:"每日简报 - [日期]"
副标题:"Gig Harbor, WA"3.5.2 Generate Image
3.5.2 生成图像
bash
uv run /Users/hagelk/non-ic-code/geoffrey/skills/image-gen/scripts/generate.py \
"[infographic prompt]" \
~/Desktop/morning_briefing_[DATE].png \
16:9 \
2KSettings:
- Aspect ratio: 16:9 (landscape dashboard)
- Size: 2K (ensures text readability)
- Output:
~/Desktop/morning_briefing_[DATE].png
bash
uv run /Users/hagelk/non-ic-code/geoffrey/skills/image-gen/scripts/generate.py \
"[信息图提示词]" \
~/Desktop/morning_briefing_[DATE].png \
16:9 \
2K设置:
- 宽高比:16:9(横向仪表板)
- 尺寸:2K(确保文字可读性)
- 输出路径:
~/Desktop/morning_briefing_[DATE].png
Phase 4: Save to Obsidian
第四阶段:保存至Obsidian
4.1 Copy Infographic to Obsidian Assets
4.1 复制信息图至Obsidian资源库
bash
cp ~/Desktop/morning_briefing_[DATE].png \
~/Library/Mobile\ Documents/iCloud~md~obsidian/Documents/Personal_Notes/Geoffrey/Daily\ Briefings/assets/bash
cp ~/Desktop/morning_briefing_[DATE].png \
~/Library/Mobile\ Documents/iCloud~md~obsidian/Documents/Personal_Notes/Geoffrey/Daily\ Briefings/assets/4.2 Add Infographic to Briefing Markdown
4.2 将信息图添加至简报Markdown
At the top of the briefing (after the title), add:
markdown
在简报标题下方添加:
markdown
4.3 Save Briefing File
4.3 保存简报文件
Use Obsidian MCP tools:
-
Check if daily note exists:
mcp__obsidian-vault__get_vault_file filename: "Geoffrey/Daily Briefings/[YYYY-MM-DD].md" -
Create or update:
mcp__obsidian-vault__create_vault_file filename: "Geoffrey/Daily Briefings/[YYYY-MM-DD].md" content: [full briefing markdown with infographic embed]
File path pattern:
Geoffrey/Daily Briefings/YYYY-MM-DD.mdFallback (if MCP unavailable): Write directly to iCloud path:
bash
/Users/hagelk/Library/Mobile Documents/iCloud~md~obsidian/Documents/Personal_Notes/Geoffrey/Daily Briefings/[YYYY-MM-DD].md使用Obsidian MCP工具:
-
检查每日笔记是否存在:
mcp__obsidian-vault__get_vault_file filename: "Geoffrey/Daily Briefings/[YYYY-MM-DD].md" -
创建或更新:
mcp__obsidian-vault__create_vault_file filename: "Geoffrey/Daily Briefings/[YYYY-MM-DD].md" content: [包含信息图嵌入的完整简报Markdown]
文件路径格式:
Geoffrey/Daily Briefings/YYYY-MM-DD.md备选方案(若MCP不可用):直接写入iCloud路径:
bash
/Users/hagelk/Library/Mobile Documents/iCloud~md~obsidian/Documents/Personal_Notes/Geoffrey/Daily Briefings/[YYYY-MM-DD].mdPhase 5: Send Email (HTML with Inline Infographic)
第五阶段:发送邮件(含内嵌信息图的HTML格式)
5.1 Generate HTML Email Body
5.1 生成HTML邮件正文
Create a professional HTML email (NOT markdown). Use the template at as reference.
skills/morning-briefing/templates/email.htmlKey HTML structure:
html
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: -apple-system, BlinkMacSystemFont, sans-serif; max-width: 600px; margin: 0 auto; }
.header { text-align: center; border-bottom: 2px solid #003366; padding: 16px; }
.stat-box { background: #f8f9fa; padding: 12px; text-align: center; }
/* ... more styles from template ... */
</style>
</head>
<body>
<!-- Infographic at TOP - referenced via cid:briefing_image -->
<img src="cid:briefing_image" alt="Daily Briefing" style="width: 100%; max-width: 600px; border-radius: 8px; margin-bottom: 20px;">
<div class="header">
<h1 style="color: #003366;">Daily Briefing</h1>
<p>[DAY_OF_WEEK], [DATE_FORMATTED]</p>
</div>
<!-- Weather, Stats, Calendar, Tasks, Team, News sections -->
<!-- See templates/email.html for full structure -->
<div style="background: #e8f4f8; padding: 16px; border-radius: 8px; margin-top: 20px;">
<strong>Attachments:</strong><br>
🎧 Audio Podcast (~10-15 min)<br>
📊 Infographic (also shown above)
</div>
<p style="text-align: center; color: #666; font-size: 12px;">
Full briefing: Obsidian/Geoffrey/Daily Briefings/[DATE].md
</p>
</body>
</html>CRITICAL: The displays the infographic inline at the top of the email.
<img src="cid:briefing_image">Save to
/tmp/morning_briefing_email.html创建专业的HTML邮件(非Markdown)。参考模板。
skills/morning-briefing/templates/email.html关键HTML结构:
html
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: -apple-system, BlinkMacSystemFont, sans-serif; max-width: 600px; margin: 0 auto; }
.header { text-align: center; border-bottom: 2px solid #003366; padding: 16px; }
.stat-box { background: #f8f9fa; padding: 12px; text-align: center; }
/* ... 模板中的更多样式 ... */
</style>
</head>
<body>
<!-- 顶部信息图 - 通过cid:briefing_image引用 -->
<img src="cid:briefing_image" alt="每日简报" style="width: 100%; max-width: 600px; border-radius: 8px; margin-bottom: 20px;">
<div class="header">
<h1 style="color: #003366;">每日简报</h1>
<p>[星期], [格式化日期]</p>
</div>
<!-- 天气、统计、日历、任务、团队、新闻等章节 -->
<!-- 完整结构请查看templates/email.html -->
<div style="background: #e8f4f8; padding: 16px; border-radius: 8px; margin-top: 20px;">
<strong>附件:</strong><br>
🎧 音频播客(约10-15分钟)<br>
📊 信息图(已显示在上方)
</div>
<p style="text-align: center; color: #666; font-size: 12px;">
完整简报:Obsidian/Geoffrey/Daily Briefings/[日期].md
</p>
</body>
</html>关键要求:用于在邮件顶部内嵌显示信息图。
<img src="cid:briefing_image">保存至
/tmp/morning_briefing_email.html5.2 Send with Inline Image + Attachments
5.2 发送内嵌图像 + 附件
bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun gmail/send_with_attachments.js psd \
--to "hagelk@psd401.net" \
--subject "Daily Briefing - [DATE]" \
--body-file /tmp/morning_briefing_email.html \
--html \
--inline-image "~/Desktop/morning_briefing_[DATE].png" \
--attachments "~/Desktop/morning_briefing_[DATE].mp3"Options explained:
- - Treat body as HTML (required for formatting)
--html - - Embeds image at top of email (referenced as
--inline-image)cid:briefing_image - - Additional files to attach (podcast)
--attachments
Result:
- Infographic displays INLINE at top of email (visible without downloading)
- Podcast attached for download
- Email renders nicely in Gmail with professional styling
bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun gmail/send_with_attachments.js psd \
--to "hagelk@psd401.net" \
--subject "每日简报 - [日期]" \
--body-file /tmp/morning_briefing_email.html \
--html \
--inline-image "~/Desktop/morning_briefing_[DATE].png" \
--attachments "~/Desktop/morning_briefing_[DATE].mp3"参数说明:
- - 将正文视为HTML(格式化必填)
--html - - 将图像内嵌在邮件顶部(通过
--inline-image引用)cid:briefing_image - - 附加的其他文件(播客)
--attachments
结果:
- 信息图内嵌显示在邮件顶部(无需下载即可查看)
- 播客作为附件可下载
- 邮件在Gmail中以专业样式完美渲染
Output
输出
Return standardized summary:
markdown
undefined返回标准化摘要:
markdown
undefinedSummary
摘要
Generated daily briefing for [DATE]
已生成[日期]的每日简报
Actions
执行操作
- Gathered calendar events: X
- Gathered tasks: X (Y due today, Z flagged)
- Gathered Technology tickets: X open, Y approvals pending
- Gathered Software Dev tickets: X open
- Gathered team EOD messages: X from [last business day]
- Gathered team completed tickets: X from [last business day]
- Weather: [conditions]
- News: X headlines
- Generated podcast: ~/Desktop/morning_briefing_[DATE].mp3
- Saved to Obsidian: Geoffrey/Daily Briefings/[DATE].md
- Email: [sent/skipped - reason]
- 收集日历日程:X个
- 收集任务:X个(今日到期Y个,已标记Z个)
- 收集技术工单:待处理X个,待审批Y个
- 收集软件开发工单:待处理X个
- 收集团队工作日志:上一个工作日X条
- 收集团队已完成工单:上一个工作日X个
- 天气:[状况]
- 新闻:X条头条
- 生成播客:~/Desktop/morning_briefing_[DATE].mp3
- 保存至Obsidian:Geoffrey/Daily Briefings/[DATE].md
- 邮件:[已发送/跳过 - 原因]
Status
状态
[Status emoji] [Complete/Partial]
[状态表情] [完成/部分完成]
Quick View
快速概览
[2-3 line summary of most important items]
undefined[2-3行最重要内容的摘要]
undefinedError Handling
错误处理
Missing Google Workspace Scripts
缺失Google Workspace脚本
If calendar/email scripts don't exist:
- Skip those sections
- Note "Integration pending" in output
- Continue with available data sources
若日历/邮件脚本不存在:
- 跳过对应章节
- 在输出中注明“集成待完成”
- 使用可用数据源继续执行
OmniFocus Not Running
OmniFocus未运行
Status: Partial
Note: OmniFocus not running - task data unavailable状态:部分完成
说明:OmniFocus未运行 - 任务数据不可用Freshservice API Error
Freshservice API错误
Status: Partial
Note: Freshservice API error - ticket data unavailable状态:部分完成
说明:Freshservice API错误 - 工单数据不可用Local TTS Generation Failed
本地TTS生成失败
Status: Partial
Note: Audio generation failed - check mlx-audio setup
Briefing saved to Obsidian without podcast状态:部分完成
说明:音频生成失败 - 检查mlx-audio配置
简报已保存至Obsidian,未生成播客Dependencies
依赖项
| Skill/Tool | Required For | Fallback |
|---|---|---|
| google-workspace | Calendar, email, team EOD | Skip sections |
| omnifocus-manager | Tasks | Skip section |
| freshservice-manager | Tickets, approvals, team stats | Skip section |
| local-tts | Audio podcast | Text-only briefing |
| obsidian-vault (MCP) | Save briefing | Display only |
| WebSearch | News, weather | Skip sections |
| 技能/工具 | 用途 | 备选方案 |
|---|---|---|
| google-workspace | 日历、邮件、团队工作日志 | 跳过对应章节 |
| omnifocus-manager | 任务 | 跳过对应章节 |
| freshservice-manager | 工单、审批、团队统计 | 跳过对应章节 |
| local-tts | 音频播客 | 仅文本简报 |
| obsidian-vault (MCP) | 保存简报 | 仅显示 |
| WebSearch | 新闻、天气 | 跳过对应章节 |
Configuration
配置
User Preferences
用户偏好
- Location: Gig Harbor, WA (weather)
- Work Email: psd account
- Technology Workspace: workspace_id: 2
- Software Dev Workspace: workspace_id: 13
- Technology Chat Space: spaces/AAAAxOtpv10 (Technology Staff Check-Ins & Logs)
- Safety & Security Chat Space: spaces/AAAAFpQaAnA (PSD Safety & Security Team)
- Voice: af_heart (warm, friendly - local Kokoro TTS)
- Podcast Length: 10-15 minutes (~1500-2000 words)
- 位置:Gig Harbor, WA(天气查询)
- 工作邮箱:psd账户
- 技术工作区:workspace_id: 2
- 软件开发工作区:workspace_id: 13
- 技术聊天空间:spaces/AAAAxOtpv10(技术员工签到与日志)
- 安全与安保聊天空间:spaces/AAAAFpQaAnA(PSD安全与安保团队)
- 语音:af_heart(温暖友好 - 本地Kokoro TTS)
- 播客时长:10-15分钟(约1500-2000词)
Customization
自定义
Users can request:
- "Skip news" - omit news section
- "No podcast" - text only
- "Just calendar and tasks" - minimal briefing
用户可请求:
- "跳过新闻" - 省略新闻章节
- "不生成播客" - 仅文本
- "仅日历与任务" - 极简简报