Overview
Complete input and output type definitions for the three workers in this project.write-agent-digest
Creates a digest page in Notion documenting an agent’s execution.WriteAgentDigestInput
Name of the agent (e.g., “Inbox Manager”, “GitHub Insyncerator”)
Emoji icon for the agent (e.g., ”📧”, ”🐙”)
Type of status:
"sync", "snapshot", "report", or "heartbeat"Outcome:
"complete", "partial", "failed", "full_report", or "stub"ISO 8601 timestamp of execution (will be formatted to Chicago time)
Description of what the agent processed (e.g., “Processed 15 emails”)
Version info for data sources (e.g., “Gmail API v1, filters v3”)
Array of items that need attention
Tasks created or updated during execution
Brief summary of the execution
Items requiring human review
Items escalated to other agents or humans
Which database to write to:
"docs" or "home_docs"Document type (e.g., “Email Triage”, “GitHub Sync”)
Array of Notion page IDs to link as client relations
Array of Notion page IDs to link as project relations
WriteAgentDigestOutput
Operation succeeded
Full Notion URL to the created digest page
Notion page ID (32-character hex string)
Full title of the created page
Whether the title includes “⚠️” or ”❌” prefix (for failed/partial status)
Whether this was a heartbeat digest (no actionable work)
Operation failed
Human-readable error message
Example
check-upstream-status
Looks up the most recent digest page for an agent and returns its status.CheckUpstreamStatusInput
Name of the agent to check (must match AGENT_DIGEST_PATTERNS)
Maximum age in hours for the digest to be considered current (default: 24)
If true, digest must be from the current business cycle (default: false)
CheckUpstreamStatusOutput
Whether a digest page was found for this agent
Echo of the requested agent name
Parsed status:
"complete", "partial", "failed", "full_report", "stub", "not_found", "stale", or "unknown"Type of status if parsed:
"sync", "snapshot", "report", or "heartbeat"Run time string from the digest (e.g., “2026-03-04 08:30 (America/Chicago)”)
Hours since the digest was created (null if not found or unparseable)
True if age exceeds max_age_hours
True if digest contains “Heartbeat: no actionable items”
True if page title starts with ⚠️ or ❌
Full Notion URL to the digest page
Notion page ID
True if status is partial, failed, or stale
Human-readable explanation of data completeness (e.g., “Data is current”)
Example
create-handoff-marker
Creates a handoff task and/or returns a formatted handoff block for escalations.CreateHandoffMarkerInput
Name of the agent creating the handoff
Name of the agent or person receiving the handoff
Why this item is being escalated
URL to the source agent’s digest page
Whether to create a Notion task page for this handoff
Priority if creating a task:
"🔴 High", "🟡 Medium", or "🟢 Low"Client page IDs to link to the task
Project page IDs to link to the task
CreateHandoffMarkerOutput
Operation succeeded
Markdown-formatted handoff block to include in digest
Whether a new task was created
URL to the created task (null if not created)
Notion page ID of the created task
Whether an existing open task was found, preventing duplicate creation
URL to existing task if duplicate was prevented
Whether escalation was rate-limited (max 3 per agent per day)
Whether this handoff requires manual review
Operation failed
Human-readable error message