--- name: person-dossier displayName: Person Dossier description: "Build and update person dossiers from communication history. Use when a person is discussed for strategy, follow-up, opportunities, relationship context, or decisions. Automatically pull evidence from Front email, Granola meetings, memory recall, and event logs; then write/update a structured dossier in Vault/Resources/." version: 1.0.0 author: Joel Hooks tags: [joelclaw, people, dossiers, memory, relationships] --- # Person Dossier Build or refresh a dossier whenever an individual is discussed. ## Trigger Run this workflow when a person is mentioned in: - strategy or planning conversations - follow-up decisions - relationship context questions - opportunity/deal/property discussions ## Output Path - `Vault/Resources/ - Dossier.md` ## Required Sections 1. All Email Threads 2. Key Topics Discussed 3. Projects Mentioned 4. Properties or Deals Referenced 5. Timeline of Interactions 6. Current Status of Open Items ## Workflow ### 1. Validate runtime and auth ```bash secrets status secrets lease front_api_token --ttl 15m ``` If secrets service is down: ```bash secrets serve & ``` ### 2. Resolve identifiers Collect: - primary name - known email(s) - aliases/handles Use these as query inputs for all sources. ### 3. Pull Front threads (primary) ```bash joelclaw email inbox -q "" -n 200 joelclaw email inbox -q "from:" -n 200 ``` Read each matching conversation: ```bash joelclaw email read --id ``` ### 4. Pull Granola meetings List meetings in a practical window: ```bash granola meetings --range this_week granola meetings --range this_month ``` For each candidate meeting ID: ```bash granola meeting granola meeting --transcript ``` ### 5. Pull memory context ```bash joelclaw recall " " --limit 20 --min-score 0.25 joelclaw recall "" --limit 20 ``` ### 6. Pull event timeline context ```bash joelclaw events --hours 720 --count 200 joelclaw events --prefix meeting --hours 720 --count 200 ``` ### 7. Normalize extracted data Populate these buckets from evidence: - email threads: subject, conversation id, participants, last activity date - topics: recurring discussion themes - projects: named initiatives - properties/deals: assets, opportunities, transactions - timeline: dated interaction entries by channel - open items: owner, status, due date, next step ### 8. Create or update dossier markdown If file does not exist: create from template. If file exists: update in-place. Update rules: - append new timeline entries without removing older ones - dedupe by stable key (`channel + source_id + date + summary`) - merge open item status updates instead of creating duplicates - keep `Verified` and `Inferred` labels on each material claim - refresh `Last Updated` timestamp ### 9. Record evidence and confidence Each section must indicate provenance: - `Verified from Front thread` - `Verified from Granola meeting` - `Inferred from memory/event context` Never present inferred content as verified. ### 10. Blocker handling If blocked: 1. record exact technical error text 2. attempt one fallback source (`joelclaw events` or `joelclaw recall`) 3. produce a blocked dossier with explicit gaps 4. include exact next-run commands No silent partials. ## Dossier Template ```markdown # - Dossier ## Identity - Name: - Emails: , - Aliases: , - Last Updated: YYYY-MM-DD ## 1. All Email Threads with - Thread: - Conversation ID: - Last activity: YYYY-MM-DD - Evidence: Verified from Front thread ## 2. Key Topics Discussed - (Verified/Inferred) ## 3. Projects Mentioned - (Verified/Inferred) ## 4. Properties or Deals Referenced - (Verified/Inferred) ## 5. Timeline of Interactions - YYYY-MM-DD | | | ## 6. Current Status of Open Items - Item: - Owner: system owner | other person | unknown - Status: open | blocked | closed - Next step: - Due: YYYY-MM-DD | unknown - Evidence: ## Evidence Index - Front conversation IDs: - Granola meeting IDs: - Memory queries: - Event windows: ## Blockers - ``` ## Quick Build Command Set ```bash # 1) Front discovery joelclaw email inbox -q "" -n 200 # 2) Front thread read joelclaw email read --id # 3) Granola context granola meetings --range this_month granola meeting --transcript # 4) Memory context joelclaw recall "" --limit 20 # 5) Event timeline joelclaw events --prefix meeting --hours 720 --count 200 ``` ## Quality Bar - No fabricated facts - Open items always include owner - Timeline uses concrete dates whenever available - Verified and inferred content clearly separated