diff --git a/routines/templates/meeting-prep.md b/routines/templates/meeting-prep.md index b6c8d33f9..a26149105 100644 --- a/routines/templates/meeting-prep.md +++ b/routines/templates/meeting-prep.md @@ -1,14 +1,14 @@ { "name": "meeting-prep", - "description": "Prepare a concise briefing before upcoming calendar events using participant and topic context.", - "default_cadence": {"type": "event", "trigger": "calendar", "offset_minutes": -30}, + "description": "Prepare a concise briefing before an upcoming anticipated activity using participant and topic context.", + "default_cadence": {"type": "activity-anticipation", "offset_minutes": -30}, "default_timezone": "UTC", "default_facets": [] } You are preparing for an upcoming meeting. -The routine prompt already includes an `Upcoming Event` section with the title, start time, and participants. Use that event context as the anchor for all research and synthesis. +The routine prompt already includes an `Upcoming Activity` section with the title, start time, participants, and description. Use that activity context as the anchor for all research and synthesis. ## Gather diff --git a/talent/morning_briefing.md b/talent/morning_briefing.md index 94227b8b7..c6bb30efd 100644 --- a/talent/morning_briefing.md +++ b/talent/morning_briefing.md @@ -30,7 +30,7 @@ Call all sources upfront. Some may return empty — that's expected, especially 9. `sol call journal search "" -d $day_YYYYMMDD -a decisions -n 10` — yesterday's consequential decisions 10. For each of the next 7 days after today: `sol call activities list --source anticipated --day YYYYMMDD` — upcoming scheduled items for forward look -For each person appearing in today's calendar events, also run: +For each person appearing in today's anticipated activities, also run: 11. `sol call entities intelligence PERSON --brief` — relationship context, recent interactions, observations (brief mode: last 20 signals + top 20 network, ~95% smaller payload) 12. `sol call health pipeline --yesterday` — pipeline anomalies from yesterday's processing @@ -40,14 +40,14 @@ Before synthesizing, audit what you gathered. This step uses only the data from 1. **Count sources.** Tally how many results each source returned: - `segments` — total transcript segments across all journal search calls (steps 6, 7, 8) - - `calendar_events` — events from today's calendar (step 3) + - `anticipated_activities` — anticipated activities for today (step 3) - `entities_consulted` — people for whom entity intelligence succeeded (step 10) - `facet_newsletters` — facets that returned a newsletter (step 2) - `followups` — follow-up items returned (step 6) - `todos` — pending todo items (step 4) - `pipeline_anomalies` — surfaced anomalies from yesterday's pipeline summary -2. **Identify gaps.** Record a gap for each source that returned zero results or is otherwise missing. A gap is not an error — it means the briefing has a blind spot in that area. Examples: `"no facet newsletters available"`, `"no follow-up items found"`, `"no calendar events today"`. +2. **Identify gaps.** Record a gap for each source that returned zero results or is otherwise missing. A gap is not an error — it means the briefing has a blind spot in that area. Examples: `"no facet newsletters available"`, `"no follow-up items found"`, `"no anticipated activities today"`. 3. **Catalog tool errors.** If any `sol call` in Phase 1 returned an error response, record it as a gap with the error context (e.g., `"entity intelligence failed for Sarah Chen"`). @@ -59,7 +59,7 @@ Before synthesizing, audit what you gathered. This step uses only the data from > 3. Note the gap in the coverage preamble > 4. Continue the briefing using whatever data succeeded > -> For entity intelligence failures specifically: still mention the person in the briefing using available data (calendar event title, time, attendee list) and append "(entity context unavailable)" after their context line. Never omit a person from the briefing solely because entity intelligence failed, and never fabricate relationship context. +> For entity intelligence failures specifically: still mention the person in the briefing using available data (activity title, time, attendee list) and append "(entity context unavailable)" after their context line. Never omit a person from the briefing solely because entity intelligence failed, and never fabricate relationship context. ## Phase 2: Synthesize @@ -67,14 +67,14 @@ Build five sections from the gathered data. **Omit any section entirely if it ha ### Section rules -**Source attribution.** Attribute high-consequence factual claims to their source using inline parenthetical links with `sol://` URIs. Not every claim needs attribution — calendar events are self-evident and the Reading section is inherently attributed. +**Source attribution.** Attribute high-consequence factual claims to their source using inline parenthetical links with `sol://` URIs. Not every claim needs attribution — anticipated activities are self-evident and the Reading section is inherently attributed. `sol://` URI construction: - **Search results:** The header includes an `id` (e.g. `20260304/archon/143022_300/talents/followups.md:2`). Strip `:idx`, then strip `/talents/{agent}.md` → `sol://20260304/archon/143022_300`. - **Entity intelligence:** `activity[].path` contains a journal-relative path. Strip `/talents/{agent}.md` to get the segment or day path. If no stream/segment_key: `sol://{day}/talents/{agent}`. - **Facet newsletters:** `sol://facets/{facet}/news/{day_YYYYMMDD}`. -**Your Day** — What's ahead today. Lead with calendar events in chronological order. For each meeting, include who's attending and one line of entity-informed context (e.g., "last met 2 weeks ago, discussed product roadmap"). Include relevant todos due today. If no calendar events exist, lead with the highest-priority todos. +**Your Day** — What's ahead today. Lead with anticipated activities in chronological order. For each meeting, include who's attending and one line of entity-informed context (e.g., "last met 2 weeks ago, discussed product roadmap"). Include relevant todos due today. If no anticipated activities exist, lead with the highest-priority todos. Attribute entity context to the source interaction: `(from your [time] [activity](sol://...))`. For entity failures: append "(entity context unavailable)" per Phase 1.5 rules. Grade entity context by evidence strength. **High** (multiple interactions or direct quotes): state context assertively — "Last met two weeks ago to discuss roadmap." **Medium** (single prior interaction): attribute the source — "Discussed pipeline issues in your March standup." **Low** (inferred relationship, no direct interaction found): hedge — "May have been involved in the Q2 planning discussions" or "Appears to be on the platform team based on meeting overlap." Never hedge well-sourced entity context; never state inferred relationships assertively. @@ -115,7 +115,7 @@ generated: [current ISO 8601 datetime] model: [model identifier you are running as] sources: segments: [count] - calendar_events: [count] + anticipated_activities: [count] entities_consulted: [count] facet_newsletters: [count] followups: [count] @@ -123,7 +123,7 @@ sources: gaps: [list of gap descriptions, or empty list [] if none] --- -> [coverage preamble — 1-2 sentences summarizing source counts and gaps. Example: "Built from 12 transcript segments, 4 calendar events, 3 entity profiles, 2 facet newsletters, 5 follow-ups, 8 todos. No gaps." or with gaps: "Built from 8 segments, 2 events. Gaps: entity intelligence unavailable for Sarah Chen; no facet newsletters today."] +> [coverage preamble — 1-2 sentences summarizing source counts and gaps. Example: "Built from 12 transcript segments, 4 anticipated activities, 3 entity profiles, 2 facet newsletters, 5 follow-ups, 8 todos. No gaps." or with gaps: "Built from 8 segments, 2 activities. Gaps: entity intelligence unavailable for Sarah Chen; no facet newsletters today."] ## Your Day - **09:00** — Sync with Sarah Chen on Q2 roadmap. Last discussed launch timeline (from your [March standup](sol://20260313/archon/091500_300)).