From 141ab67a29a38ae6c60878741a4e8e56ed7a78ba Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 31 May 2026 02:42:00 +0000 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20TF3=20Productivity=20Plugin=20?= =?UTF-8?q?=E2=80=94=20adapted=20from=20anthropics/knowledge-work-plugins?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++ productivity/.mcp.json | 42 +--------- productivity/CONNECTORS.md | 12 +-- productivity/commands/brief.md | 15 ++++ productivity/commands/handoff.md | 10 +++ productivity/commands/log.md | 11 +++ productivity/commands/sweep.md | 11 +++ productivity/commands/task.md | 11 +++ productivity/skills/productivity.md | 19 +++++ productivity/skills/rex-protocols.md | 30 +++++++ productivity/skills/tf3-context.md | 40 +++++++++ productivity/skills/update/SKILL.md | 119 ++++++--------------------- 12 files changed, 189 insertions(+), 139 deletions(-) create mode 100644 productivity/commands/brief.md create mode 100644 productivity/commands/handoff.md create mode 100644 productivity/commands/log.md create mode 100644 productivity/commands/sweep.md create mode 100644 productivity/commands/task.md create mode 100644 productivity/skills/productivity.md create mode 100644 productivity/skills/rex-protocols.md create mode 100644 productivity/skills/tf3-context.md diff --git a/README.md b/README.md index 261e2f47..a69ce9dd 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,11 @@ +# TF3 Productivity Plugin +Adapted from `anthropics/knowledge-work-plugins` for TF3 Trifecta Solutions. +Connectors: Notion + ClickUp only. +Install: `claude plugin install ./tf3-productivity-plugin` +Requires env vars: NOTION_TOKEN, CLICKUP_API_KEY + +--- + # Knowledge Work Plugins Plugins that turn Claude into a specialist for your role, team, and company. Built for [Claude Cowork](https://claude.com/product/cowork), also compatible with [Claude Code](https://claude.com/product/claude-code). diff --git a/productivity/.mcp.json b/productivity/.mcp.json index 0097bab3..9b3b0f69 100644 --- a/productivity/.mcp.json +++ b/productivity/.mcp.json @@ -1,48 +1,14 @@ { "mcpServers": { - "slack": { - "type": "http", - "url": "https://mcp.slack.com/mcp", - "oauth": { - "clientId": "1601185624273.8899143856786", - "callbackPort": 3118 - } - }, "notion": { "type": "http", - "url": "https://mcp.notion.com/mcp" - }, - "asana": { - "type": "http", - "url": "https://mcp.asana.com/v2/mcp" - }, - "linear": { - "type": "http", - "url": "https://mcp.linear.app/mcp" - }, - "atlassian": { - "type": "http", - "url": "https://mcp.atlassian.com/v1/mcp" - }, - "ms365": { - "type": "http", - "url": "https://microsoft365.mcp.claude.com/mcp" - }, - "monday": { - "type": "http", - "url": "https://mcp.monday.com/mcp" + "url": "https://mcp.notion.com/mcp", + "authorization_token": "${NOTION_TOKEN}" }, "clickup": { "type": "http", - "url": "https://mcp.clickup.com/mcp" - }, - "google calendar": { - "type": "http", - "url": "" - }, - "gmail": { - "type": "http", - "url": "" + "url": "https://mcp.clickup.com/mcp", + "authorization_token": "${CLICKUP_API_KEY}" } } } diff --git a/productivity/CONNECTORS.md b/productivity/CONNECTORS.md index 537f5093..bed42177 100644 --- a/productivity/CONNECTORS.md +++ b/productivity/CONNECTORS.md @@ -8,11 +8,11 @@ Plugins are **tool-agnostic** — they describe workflows in terms of categories ## Connectors for this plugin +TF3 stack only — Notion + ClickUp. + | Category | Placeholder | Included servers | Other options | |----------|-------------|-----------------|---------------| -| Chat | `~~chat` | Slack | Microsoft Teams, Discord | -| Email | `~~email` | Microsoft 365 | — | -| Calendar | `~~calendar` | Microsoft 365 | — | -| Knowledge base | `~~knowledge base` | Notion | Confluence, Guru, Coda | -| Project tracker | `~~project tracker` | Asana, Linear, Atlassian (Jira/Confluence), monday.com, ClickUp | Shortcut, Basecamp, Wrike | -| Office suite | `~~office suite` | Microsoft 365 | — | +| Knowledge base | `~~knowledge base` | Notion | — | +| Project tracker | `~~project tracker` | ClickUp | — | + +Tokens are sourced from Claude Code environment variables: `NOTION_TOKEN`, `CLICKUP_API_KEY`. diff --git a/productivity/commands/brief.md b/productivity/commands/brief.md new file mode 100644 index 00000000..6168c0f5 --- /dev/null +++ b/productivity/commands/brief.md @@ -0,0 +1,15 @@ +--- +description: Scaffold a Forge brief page in Notion +argument-hint: "[CC number] [one-line objective]" +--- + +# /brief — Scaffold Forge Brief Page +Usage: /brief [CC number] [one-line objective] +1. Create child page under Notion page 364871f7633d81e9b91bfc0c6f545e40 +2. Title: CC-[number] — Cipher Brief — [objective] ([date]) +3. Pre-fill with standard pre-flight block: + - Repo: Tr1f3cta-cloud/tf3-agent-room · branch: master + - ESM only — import/export, no require/module.exports + - Do NOT change access codes or model strings +4. Leave Implementation Steps section blank for Forge to complete +5. Return page URL diff --git a/productivity/commands/handoff.md b/productivity/commands/handoff.md new file mode 100644 index 00000000..693557ad --- /dev/null +++ b/productivity/commands/handoff.md @@ -0,0 +1,10 @@ +--- +description: Write a Handoff Log entry to Notion +argument-hint: "[from] [to] [context] [action required]" +--- + +# /handoff — Write Handoff Log Entry +Usage: /handoff [from] [to] [context] [action required] +1. Confirm the four fields with the user +2. Append to Notion page 364871f7633d81a5be74f181d076278c in format: [From → To] · [Date] · [context] | [action] | [url if any] | [priority] +3. Confirm written with page URL diff --git a/productivity/commands/log.md b/productivity/commands/log.md new file mode 100644 index 00000000..dd989987 --- /dev/null +++ b/productivity/commands/log.md @@ -0,0 +1,11 @@ +--- +description: Write a Session Log entry to Notion +argument-hint: "[agent name] [one-line summary]" +--- + +# /log — Write Session Log Entry +Usage: /log [agent name] [one-line summary] +1. Ask: completed items, decisions confirmed, ClickUp tasks to close, CLAUDE.md updated yes/no +2. Create a child page under Notion page 34f871f7633d815b8f2bf0dbbe6ed5df +3. Title format: [AgentName] · [Date] · [summary] +4. Confirm written with page URL diff --git a/productivity/commands/sweep.md b/productivity/commands/sweep.md new file mode 100644 index 00000000..30edb278 --- /dev/null +++ b/productivity/commands/sweep.md @@ -0,0 +1,11 @@ +--- +description: TF3 morning sweep — prioritised brief from ClickUp + Notion on demand +--- + +# /sweep — TF3 Morning Sweep +Replicate Rex's morning sweep on demand. +1. Fetch all open urgent + high priority tasks from ClickUp spaces 90166324362 and 90166324354 (limit 5 each, statuses[]=open&priorities[]=1&priorities[]=2) +2. Read the 5 most recent child pages from Notion page 34f871f7633d815b8f2bf0dbbe6ed5df +3. Read pending entries from Notion page 364871f7633d81a5be74f181d076278c +4. Produce: today's date, top 3 priorities, pending handoffs, decisions needed +5. Ask: "Anything to add before I write the session log?" diff --git a/productivity/commands/task.md b/productivity/commands/task.md new file mode 100644 index 00000000..9488a029 --- /dev/null +++ b/productivity/commands/task.md @@ -0,0 +1,11 @@ +--- +description: Create a ClickUp task in the correct TF3 list +argument-hint: "[list] [name] [details]" +--- + +# /task — Create ClickUp Task +Usage: /task [list] [name] [details] +List options: management (901613539484), pillar2 (901614558872), marketing (901614558870), active-projects (901614408179), smb-pipeline (901614491515), community-pipeline (901614491517), live-retainer (901614478854) +1. Resolve list name to list ID +2. Create task with name and details in description (keep description under 300 characters) +3. Return task URL diff --git a/productivity/skills/productivity.md b/productivity/skills/productivity.md new file mode 100644 index 00000000..8b4ddd4f --- /dev/null +++ b/productivity/skills/productivity.md @@ -0,0 +1,19 @@ +# Productivity — TF3 Configuration +See tf3-context.md for full company context, ClickUp list IDs, and Notion page IDs. +See rex-protocols.md for session log format and signal protocol. + +## Tools +This plugin connects to TF3's stack only: +- **ClickUp** — all tasks (full details in the description). Never create Notion pages for tasks. +- **Notion** — session logs, briefs, specs, and knowledge. + +## Skills +- `start` — initialize the task and memory systems and open the dashboard +- `update` — sync ClickUp tasks, read the Ops Note and Handoff Log, summarise what needs Paskal today + +## Commands +- `/productivity:sweep` — replicate Rex's morning sweep on demand +- `/productivity:handoff` — write a Handoff Log entry +- `/productivity:log` — write a Session Log entry +- `/productivity:task` — create a ClickUp task in the correct list +- `/productivity:brief` — scaffold a Forge brief page in Notion diff --git a/productivity/skills/rex-protocols.md b/productivity/skills/rex-protocols.md new file mode 100644 index 00000000..79ac2a10 --- /dev/null +++ b/productivity/skills/rex-protocols.md @@ -0,0 +1,30 @@ +# Rex Protocols — TF3 Operational Standards + +## Morning Sweep Protocol +1. Fetch urgent + high priority open tasks from ClickUp spaces 90166324362 and 90166324354 +2. Read Session Log (34f871f7633d815b8f2bf0dbbe6ed5df) — 5 most recent child pages +3. Read Handoff Log (364871f7633d81a5be74f181d076278c) — pending items only +4. Produce: date, top 3 priorities, pending handoffs, decisions needed +5. Ask Paskal if anything to add before writing the session log entry + +## Session Log Format +[AgentName] · [Date] · One-line summary +Completed: list +Decisions confirmed: list +For Rex: what to sync +CLAUDE.md updated: yes/no +ClickUp tasks to close: list + +## Handoff Log Format +[From → To] · [Date] · Context | Action required | Reference URL | Priority + +## Signal Protocol +[STATE:working/idle/blocked/waiting:description] +[HANDOFF:agent] context | action | url | priority +[DECISION:title] body | context | priority +[ACTIVITY:action description] + +## Standing Rules +- Tasks in ClickUp — descriptions under 300 characters +- Escalate enterprise commitments to Paskal always +- Never send external comms without Paskal confirmation diff --git a/productivity/skills/tf3-context.md b/productivity/skills/tf3-context.md new file mode 100644 index 00000000..6de72423 --- /dev/null +++ b/productivity/skills/tf3-context.md @@ -0,0 +1,40 @@ +# TF3 Trifecta Solutions — Context + +## Company +- TF3 Trifecta Solutions Pty Ltd · Melbourne, Australia +- Pillar 1: Web Hosting & Digital Growth (SMBs) +- Pillar 2: AI, Automation & Governance (enterprise) +- Pillar 3: Sustainable Future / GHT Partnership (community) + +## Team +- Paskal Glavinov — Director +- JC — Social Content +- Raphael — Engagement VA (SMB inbound + community outbound only) +- Christian Riconalla — Dev / GCP Admin +- Tony Kocankovski — Solutions Architect + +## Active Clients +Nature Insights, TopNotch, Butterflies Daycare, Planet Zero Waste, GreenHeart Trust, Elite BioCode, PA Real Solutions, Flowerdale Community House, Dhiv Naidoo + +## Key Rules +- Tasks go in ClickUp with full details in description. Never create Notion pages for tasks. +- Notion is for session logs, briefs, specs, and knowledge only. +- Australian data sovereignty: hard requirement on all client data. +- Brand tone: Engineered Authority (TF3) / Community Warmth (GHT). Never mix. + +## ClickUp Lists +- Management: 901613539484 +- Pillar 2 / AI: 901614558872 +- Marketing: 901614558870 +- Active Projects: 901614408179 +- SMB Pipeline: 901614491515 +- Community Pipeline: 901614491517 +- Live & Retainer: 901614478854 +- Team ID: 42662559 + +## Notion Pages +- Session Log: 34f871f7633d815b8f2bf0dbbe6ed5df +- Ops Note: 347871f7633d8113a73bf24a4e7ee9e9 +- Handoff Log: 364871f7633d81a5be74f181d076278c +- Agent Wiki: 346871f7633d81f0a11bf976525fd0ed +- Forge Briefs: 364871f7633d81e9b91bfc0c6f545e40 diff --git a/productivity/skills/update/SKILL.md b/productivity/skills/update/SKILL.md index ee86a1f3..1d8ece9f 100644 --- a/productivity/skills/update/SKILL.md +++ b/productivity/skills/update/SKILL.md @@ -1,17 +1,17 @@ --- name: update -description: Sync tasks and refresh memory from your current activity. Use when pulling new assignments from your project tracker into TASKS.md, triaging stale or overdue tasks, filling memory gaps for unknown people or projects, or running a comprehensive scan to catch todos buried in chat and email. +description: Sync TF3 tasks and refresh memory from current activity. Use when pulling new ClickUp assignments into TASKS.md, triaging stale or overdue tasks, reading the Ops Note and Handoff Log, and summarising what needs Paskal today. argument-hint: "[--comprehensive]" --- # Update Command -> If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md). +> See tf3-context.md for ClickUp list IDs and Notion page IDs, and rex-protocols.md for the sweep protocol and signal formats. Keep your task list and memory current. Two modes: -- **Default:** Sync tasks from external tools, triage stale items, check memory for gaps -- **`--comprehensive`:** Deep scan chat, email, calendar, docs — flag missed todos and suggest new memories +- **Default:** Sync ClickUp tasks, triage stale items, check memory for gaps +- **`--comprehensive`:** Default mode plus a deep read of the Ops Note and Handoff Log — flag missed todos and suggest new memories ## Usage @@ -26,22 +26,16 @@ Keep your task list and memory current. Two modes: Read `TASKS.md` and `memory/` directory. If they don't exist, suggest `/productivity:start` first. -### 2. Sync Tasks from External Sources +### 2. Sync Tasks from ClickUp -Check for available task sources: -- **Project tracker** (e.g. Asana, Linear, Jira) (if MCP available) -- **GitHub Issues** (if in a repo): `gh issue list --assignee=@me` +Fetch urgent + high priority ClickUp tasks from spaces 90166324362 (TF3 HQ) and 90166324354 (Digital Growth). Compare against TASKS.md: -If no sources are available, skip to Step 3. - -**Fetch tasks assigned to the user** (open/in-progress). Compare against TASKS.md: - -| External task | TASKS.md match? | Action | -|---------------|-----------------|--------| +| ClickUp task | TASKS.md match? | Action | +|--------------|-----------------|--------| | Found, not in TASKS.md | No match | Offer to add | | Found, already in TASKS.md | Match by title (fuzzy) | Skip | -| In TASKS.md, not in external | No match | Flag as potentially stale | -| Completed externally | In Active section | Offer to mark done | +| In TASKS.md, not in ClickUp | No match | Flag as potentially stale | +| Completed in ClickUp | In Active section | Offer to mark done | Present diff and let user decide what to add/complete. @@ -56,113 +50,48 @@ Present each for triage: Mark done? Reschedule? Move to Someday? ### 4. Decode Tasks for Memory Gaps -For each task, attempt to decode all entities (people, projects, acronyms, tools, links): - -``` -Task: "Send PSR to Todd re: Phoenix blockers" - -Decode: -- PSR → ✓ Pipeline Status Report (in glossary) -- Todd → ✓ Todd Martinez (in people/) -- Phoenix → ? Not in memory -``` - -Track what's fully decoded vs. what has gaps. +For each task, attempt to decode all entities (people, projects, acronyms, clients, links) against tf3-context.md and `memory/`. Track what's fully decoded vs. what has gaps. ### 5. Fill Gaps -Present unknown terms grouped: -``` -I found terms in your tasks I don't have context for: - -1. "Phoenix" (from: "Send PSR to Todd re: Phoenix blockers") - → What's Phoenix? - -2. "Maya" (from: "sync with Maya on API design") - → Who is Maya? -``` - -Add answers to the appropriate memory files (people/, projects/, glossary.md). +Present unknown terms grouped, then add answers to the appropriate memory files (people/, projects/, glossary.md). ### 6. Capture Enrichment -Tasks often contain richer context than memory. Extract and update: -- **Links** from tasks → add to project/people files -- **Status changes** ("launch done") → update project status, demote from CLAUDE.md -- **Relationships** ("Todd's sign-off on Maya's proposal") → cross-reference people -- **Deadlines** → add to project files +Tasks often contain richer context than memory. Extract and update links, status changes, relationships, and deadlines into the relevant project/people files. ### 7. Report ``` Update complete: -- Tasks: +3 from project tracker (e.g. Asana), 1 completed, 2 triaged +- Tasks: +3 from ClickUp, 1 completed, 2 triaged - Memory: 2 gaps filled, 1 project enriched - All tasks decoded ✓ ``` ## Comprehensive Mode (`--comprehensive`) -Everything in Default Mode, plus a deep scan of recent activity. +Everything in Default Mode, plus a deep read of TF3 system state: -### Extra Step: Scan Activity Sources +### Extra Step: Read System State -Gather data from available MCP sources: -- **Chat:** Search recent messages, read active channels -- **Email:** Search sent messages -- **Documents:** List recently touched docs -- **Calendar:** List recent + upcoming events +1. Fetch urgent + high priority ClickUp tasks from spaces 90166324362 and 90166324354 +2. Read Ops Note (Notion page 347871f7633d8113a73bf24a4e7ee9e9) for current system state +3. Read Handoff Log (Notion page 364871f7633d81a5be74f181d076278c) for pending items +4. Summarise: open tasks, pending handoffs, what needs Paskal today ### Extra Step: Flag Missed Todos -Compare activity against TASKS.md. Surface action items that aren't tracked: - -``` -## Possible Missing Tasks - -From your activity, these look like todos you haven't captured: - -1. From chat (Jan 18): - "I'll send the updated mockups by Friday" - → Add to TASKS.md? - -2. From meeting "Phoenix Standup" (Jan 17): - You have a recurring meeting but no Phoenix tasks active - → Anything needed here? - -3. From email (Jan 16): - "I'll review the API spec this week" - → Add to TASKS.md? -``` - -Let user pick which to add. +Compare the Ops Note and Handoff Log against TASKS.md. Surface action items that aren't tracked and let the user pick which to add. ### Extra Step: Suggest New Memories -Surface new entities not in memory: - -``` -## New People (not in memory) -| Name | Frequency | Context | -|------|-----------|---------| -| Maya Rodriguez | 12 mentions | design, UI reviews | -| Alex K | 8 mentions | DMs about API | - -## New Projects/Topics -| Name | Frequency | Context | -|------|-----------|---------| -| Starlight | 15 mentions | planning docs, product | - -## Suggested Cleanup -- **Horizon project** — No mentions in 30 days. Mark completed? -``` - -Present grouped by confidence. High-confidence items offered to add directly; low-confidence items asked about. +Surface new people, clients, or projects not yet in memory, grouped by confidence. High-confidence items offered to add directly; low-confidence items asked about. ## Notes - Never auto-add tasks or memories without user confirmation -- External source links are preserved when available +- ClickUp task links are preserved when available - Fuzzy matching on task titles handles minor wording differences -- Safe to run frequently — only updates when there's new info +- Tasks live in ClickUp; never create Notion pages for tasks (see tf3-context.md) - `--comprehensive` always runs interactively From 1c5cf72ea8a3b5126ce5d685c75036c403c442fb Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 31 May 2026 02:59:37 +0000 Subject: [PATCH 2/3] fix: rename marketplace so the TF3 fork is installable The upstream name 'knowledge-work-plugins' is reserved by the CLI for Anthropic-org sources, which blocks 'claude plugin marketplace add' on the fork. Rename to 'tf3-knowledge-work-plugins' under TF3 ownership. --- .claude-plugin/marketplace.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index d6678547..0613a37a 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -1,7 +1,7 @@ { - "name": "knowledge-work-plugins", + "name": "tf3-knowledge-work-plugins", "owner": { - "name": "Anthropic" + "name": "TF3 Trifecta Solutions" }, "plugins": [ { From ff45b48374941823089daadcc64eedb3b0a3dd1d Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 31 May 2026 03:06:24 +0000 Subject: [PATCH 3/3] =?UTF-8?q?refine:=20tighten=20/sweep=20=E2=80=94=20cl?= =?UTF-8?q?ient-side=20priority=20filter,=20skip=20[LEGACY],=20child-page?= =?UTF-8?q?=20session=20log=20reads?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ClickUp: use clickup_filter_tasks over spaces 90166324362 + 90166324354 and list 901614493497; filter Urgent/High client-side (tool has no priority param); skip lists whose name contains [LEGACY]. - Session Log: enumerate child pages and read the 5 most recently updated individually instead of fetching the oversized parent page. --- productivity/commands/sweep.md | 7 +++++-- productivity/skills/rex-protocols.md | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/productivity/commands/sweep.md b/productivity/commands/sweep.md index 30edb278..dbfa27d2 100644 --- a/productivity/commands/sweep.md +++ b/productivity/commands/sweep.md @@ -4,8 +4,11 @@ description: TF3 morning sweep — prioritised brief from ClickUp + Notion on de # /sweep — TF3 Morning Sweep Replicate Rex's morning sweep on demand. -1. Fetch all open urgent + high priority tasks from ClickUp spaces 90166324362 and 90166324354 (limit 5 each, statuses[]=open&priorities[]=1&priorities[]=2) -2. Read the 5 most recent child pages from Notion page 34f871f7633d815b8f2bf0dbbe6ed5df +1. Fetch open tasks via the ClickUp `clickup_filter_tasks` tool over spaces 90166324362 and 90166324354 and list 901614493497. The tool has no priority parameter, so filter client-side: + - Keep only tasks whose priority is Urgent (1) or High (2). + - Skip any task whose list name contains `[LEGACY]`. + - Take the top 5 remaining. +2. Read the Session Log's recent entries: enumerate the child pages of Notion page 34f871f7633d815b8f2bf0dbbe6ed5df, take the 5 most recently updated, and read each one individually (do not fetch the parent page whole — it is too large). 3. Read pending entries from Notion page 364871f7633d81a5be74f181d076278c 4. Produce: today's date, top 3 priorities, pending handoffs, decisions needed 5. Ask: "Anything to add before I write the session log?" diff --git a/productivity/skills/rex-protocols.md b/productivity/skills/rex-protocols.md index 79ac2a10..b3ac1f6a 100644 --- a/productivity/skills/rex-protocols.md +++ b/productivity/skills/rex-protocols.md @@ -1,8 +1,8 @@ # Rex Protocols — TF3 Operational Standards ## Morning Sweep Protocol -1. Fetch urgent + high priority open tasks from ClickUp spaces 90166324362 and 90166324354 -2. Read Session Log (34f871f7633d815b8f2bf0dbbe6ed5df) — 5 most recent child pages +1. Fetch open tasks via the ClickUp `clickup_filter_tasks` tool over spaces 90166324362 and 90166324354 and list 901614493497. The tool has no priority parameter — filter client-side: keep only Urgent (1) or High (2) priority, skip any task whose list name contains `[LEGACY]`, take the top 5. +2. Read the Session Log (34f871f7633d815b8f2bf0dbbe6ed5df): enumerate its child pages, take the 5 most recently updated, and read each individually — do not fetch the parent page whole (it is too large). 3. Read Handoff Log (364871f7633d81a5be74f181d076278c) — pending items only 4. Produce: date, top 3 priorities, pending handoffs, decisions needed 5. Ask Paskal if anything to add before writing the session log entry