From CasePro for Claude
How to find a matter and pull its COMPLETE picture for deep work — analyzing a case, building a demand letter, a liability narrative, a settlement summary, or any task that needs the full matter. Use whenever the user names a matter (by name, number, or id) and asks you to analyze it, summarize it, or draft anything from it.
How this skill is triggered — by the user, by Claude, or both
Slash command
/casepro:casepro-matter-deep-diveThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
When the user asks about a specific matter — "analyze this case", "build a demand letter", "write the liability narrative", "summarize where this matter stands" — do NOT work from the matter record alone. Pull the full picture first.
When the user asks about a specific matter — "analyze this case", "build a demand letter", "write the liability narrative", "summarize where this matter stands" — do NOT work from the matter record alone. Pull the full picture first.
Matters can be referenced by name, matter number (e.g. MAT-20251118_20 or CP-2026-014), or id. Resolve it first:
Find matter with matter_number: {number} and return id, matter_name, status, client_id, plaintiff, defendant, incident_date, incident_time
Find matter with matter_name containing {name} and return id, matter_name, matter_number, status, client_id, plaintiff, defendant, incident_date
Get matter {matter_id} and return all fields
Keep the matter's id — almost everything else is fetched by matter_id.
matter_id foreign key, so you filter them directly by the matter: medical_providers, insurances, injuries, litigations, depositions, mediations, witnesses, negotiations, resolutions, liens, expenses, damages, tasks, notes.plaintiff and defendant arrays (lists of party ids) plus the party_id / adjuster_id / defendant_id foreign keys on related records (medical_providers.party_id, insurances.party_id / bi_adjuster_id / pd_adjuster_id, etc.). Never filter the parties table by matter_id — it has no such column, and you'll get the whole org back. Instead, collect the party ids from the matter arrays and the related records, then fetch those parties by id.medical_provider_id, not by matter).For a deep task, gather the relevant set (skip what's irrelevant to the request):
Get all injuries for matter {matter_id} and return all fields
Get all medical_providers for matter {matter_id} and return id, party_id, status, reductions, no_reduction_needed
→ then for each provider: Get all bills for medical_provider {provider_id} and return total_amount, amount_due, adjusted_amount, bill_date, icd_codes, cpt_codes
Get all insurances for matter {matter_id} and return insurance_name, insurance_type, claim_number, policy_limit, liability_percentage, party_id, bi_adjuster_id, defendant_id
Get all liens for matter {matter_id} and return all fields
Get all negotiations for matter {matter_id} and return all fields
Get all litigations for matter {matter_id} and return cause_number, venue, judge, trial_date, positive_facts, negative_facts, trial_story, settlement_story
Get all expenses for matter {matter_id} and return all fields
Get all notes for matter {matter_id} and return all fields
Get all tasks for matter {matter_id} and return all fields
Then resolve the people: take the plaintiff/defendant party ids from the matter and the party_id/adjuster ids from providers and insurances, and Get party {id} and return full_name, party_name, record_type, email, mobile_number, address for each.
positive_facts/negative_facts/trial_story if present + witness records + the at-fault insurance's liability_percentage. Read the actual crash report (documents skill) — don't infer the officer's findings.If one piece fails — a document won't open, a query errors, a file is too large — do not abandon the task. Keep going: pull the other entities, read the other documents, and build the best answer you can from everything that DID come back. A demand letter or liability narrative can be largely built from the structured matter data even if one exhibit won't open. At the end, briefly note what you couldn't include (e.g. "I couldn't open the crash report exhibit — open it in Claude Cowork and I'll fold in the officer's findings") so the user can fill the gap. Never refuse the whole task because one file or one query failed.
Always tell the user which matter you pulled and call out anything missing (in plain terms, no technical reasons) so they can fill the gap.
npx claudepluginhub omnisaiorg/casepro-claude-plugin --plugin caseproGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.