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/.
91
88%
Does it follow best practices?
Impact
98%
1.40xAverage score across 3 eval scenarios
Passed
No known issues
Build or refresh a dossier whenever an individual is discussed.
Run this workflow when a person is mentioned in:
Vault/Resources/<Person Name> - Dossier.mdsecrets status
secrets lease front_api_token --ttl 15mIf secrets service is down:
secrets serve &Collect:
Use these as query inputs for all sources.
joelclaw email inbox -q "<person name>" -n 200
joelclaw email inbox -q "from:<email-or-handle>" -n 200Read each matching conversation:
joelclaw email read --id <cnv_id>List meetings in a practical window:
granola meetings --range this_week
granola meetings --range this_monthFor each candidate meeting ID:
granola meeting <meeting_id>
granola meeting <meeting_id> --transcriptjoelclaw recall "<person name> <company> <project>" --limit 20 --min-score 0.25
joelclaw recall "<person email or alias>" --limit 20joelclaw events --hours 720 --count 200
joelclaw events --prefix meeting --hours 720 --count 200Populate these buckets from evidence:
If file does not exist: create from template.
If file exists: update in-place.
Update rules:
channel + source_id + date + summary)Verified and Inferred labels on each material claimLast Updated timestampEach section must indicate provenance:
Verified from Front threadVerified from Granola meetingInferred from memory/event contextNever present inferred content as verified.
If blocked:
joelclaw events or joelclaw recall)No silent partials.
# <Person Name> - Dossier
## Identity
- Name: <name>
- Emails: <email1>, <email2>
- Aliases: <alias1>, <alias2>
- Last Updated: YYYY-MM-DD
## 1. All Email Threads with <Person Name>
- Thread: <subject>
- Conversation ID: <cnv_id>
- Last activity: YYYY-MM-DD
- Evidence: Verified from Front thread
## 2. Key Topics Discussed
- <topic> (Verified/Inferred)
## 3. Projects Mentioned
- <project> (Verified/Inferred)
## 4. Properties or Deals Referenced
- <item> (Verified/Inferred)
## 5. Timeline of Interactions
- YYYY-MM-DD | <channel> | <summary> | <source_id>
## 6. Current Status of Open Items
- Item: <description>
- Owner: system owner | other person | unknown
- Status: open | blocked | closed
- Next step: <text>
- Due: YYYY-MM-DD | unknown
- Evidence: <source>
## Evidence Index
- Front conversation IDs: <list>
- Granola meeting IDs: <list>
- Memory queries: <list>
- Event windows: <list>
## Blockers
- <none or error text># 1) Front discovery
joelclaw email inbox -q "<person name>" -n 200
# 2) Front thread read
joelclaw email read --id <cnv_id>
# 3) Granola context
granola meetings --range this_month
granola meeting <meeting_id> --transcript
# 4) Memory context
joelclaw recall "<person name>" --limit 20
# 5) Event timeline
joelclaw events --prefix meeting --hours 720 --count 200825972c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.